With ActiveSheet.Rows(Range("A2").Row) ist das gleiche wie 
	
		With ActiveSheet.Rows(2), also warum so umständlich über umwege?
	
		Apropos umwege : Warum SUBTOTAL(9,R[-66]C:R[-2]C) und nicht Summe(R[-66]C:R[-2]C)?
	
		Dein makro sucht und findet die ersten "X" und "Y", schreibt die formel unten und hört dann auf, genau so wie du es programmiert hast.
	
		Du musst schon eine Schleife bauen und in dieser schleife jedes mal den range verkleinern, damit die schon gefundenen übersprungen werden.
	
		Aber noch einfacher geht es so:
	
		 
	
		dim z,s as long
	
		for s= 1 to 100 'bei 100 Spalten max
	
		     if ActiveSheet.cells(2,s)="X" or ActiveSheet.cells(2,s)="Y" then 'Wenn Überschrift in Zeile 2
	
		          ActiveSheet.cells(70,s).FormulaR1C1=SUM(R3C:R68C)' Wenn 3/68 erste/letzte Zeile und 70 Zeile der formel ist
	
		     end if
	
		next s
	
	
		Fertig!