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!