Hallo zusammen,
ich versuche aktuell ca. 20 Berechnungen in eine zu komprimieren. Dabei geht es um eine simple Variation der Berechnung (s.u.), bei der in jeder Spalte alle als "Level 3" Markierten überschriften die dazugehörigen "Level 4" Unterüberschriften zusammenrechnen sollen. Herausforderung dabei ist, dass es ungleiche Abstände gibt und VBA daher finden muss, wo der nächste "Level 4" liegt und wann ein "Level 3" Abschnitt zuende ist (dies löst die Berechnung für mich).
Offen ist jedoch die jeweiligen Spalten als Variable einzufügen. D.h., wie kann ich es schaffen diese Rechnung in den Spalten Q (17) bis AV (37) durchzuführen, ohne sie ca. 20 mal leicht angepassst zu kopieren?
Vielen vielen Dank!
Max
Beispiel für Spalte U (21)
For i = FirstRT To NewLastRT
If Cells(i, 3).Value = 3 And IsNumeric(Cells(i, 3)) Then
j = i
txt = ""
Do While IsNumeric(Cells(j + 1, 3)) And (Cells(j + 1, 3).Value = 4 Or Cells(j + 1, 3).Value = 5)
If Cells(j + 1, 3).Value = 4 Then
txt = txt & "U" & j + 1 & ","
End If
j = j + 1
Loop
If Len(txt) > 0 Then
txt = Left(txt, Len(txt) - 1)
End If
If Len(txt) > 0 Then
Cells(i, 21).Formula = "=SUM(" & txt & ")"
Else
Cells(i, 10).Value = "0"
End If
End If
Next i
|