Problém není v elseifech, ale v tom, že procedura nesmí být větší jak 64 kB.
Pokud chceš, můžeš si dát každou Target.Address do samostatného IFu. Anebo to řeš pomocí Select Case
Ještě bych použil zkrácené odkazy na listy:
Set wsVyp = ThisWorkbook.Sheets("Vypocty") ' Tohle dej na začátek, před IFy
...
Range("S3").Value = wsVyp.Range("K5").Value
Ale celé to je nějaké podivné, chtělo by to nějak přepracovat. Ale víc neporadím, nějak mi není jasné, co vlastně potřebuješ...