AW: Die letzten 210 Werte (anhand des Datums) addieren
17.10.2006 13:30:33
ingUR
Hallo, Michael,
als Grundgerüst habe ich eine VBA-Standardmodul-Prozedur geschrieben (ohne durchgreifende Prüfung!), die alle Bereichzeilen (ab Zeile 9 bis aktuelles Datum) durchläuft und jeweils die Summe der letzen 210 gültigen Werte der Spalte B in die Spalte C in die betreffende Referenzzeile Zeile schreibt.
Option Explicit
Const DATEN = "Tabelle1"
Const FIRSTROW = 9
Const ANZSUM = 210
Public Sub Sum210()
Dim rngR As Range, MaxRow As Long, Datum As Date
Dim r As Long, rIndex As Long, sum As Double, sumV As Boolean
Datum = Date
MaxRow = Cells(Rows.Count, 1).End(xlUp).Row
sumV = True
For Each rngR In Range("A" & ANZSUM - 1 + FIRSTROW & ":A" & MaxRow)
sum = 0
With rngR
rIndex = 0
If .Value > Datum Then
sumV = False
Else
r = 0
Do
If IsNumeric(.Offset(-rIndex, 1)) Then
sum = sum + .Offset(-rIndex, 1)
r = r + 1
End If
rIndex = rIndex + 1
Loop Until .Row - rIndex < FIRSTROW Or r = ANZSUM
End If
.Offset(0, 2) = IIf(sumV And r = ANZSUM, sum, "")
End With
Next rngR
End Sub
Von der Programmfolge her sollte damit das gewünschte Ergebnis erzielt werden. Das Programm kann auch so abgeändert werden, dass nur die aktuelle Datumszeile ausgewertet wird und nicht alle Daten ab Zeile neun. Dazu ist die Schleife über die Range-Zeilen durch den Einzelzeilenbezug zu ersetzen.
Gruß,
Uwe