Datum
07.11.2005 04:36:50
gnilk
ich habe eine Tabelle mit Auftraegen. Diese Auftraege haben einen in Geldeinheiten bewerteten Betrag. Des Weiteren sind die Auftraege mit einem Datum besehen.
Wenn ich jetzt z.B. die Summe der Betraege fuer den Februar haben will, dann setze ich den Autofilter und setze ihn mir dem entsprechend, dass mir nur die Betraege vom Februar angezeigt werden.
Mein Makro nimmt jedoch als Suchkriterium (so habe ich es programmiert) immer den 31 eines Monats, dadurch habe ich das Problem, dass im Februar nichts gefunden wird. Der Wert ist dadurch 0.
Hier mein Code ohne
Sub und End Sub
:' hier sollen die ganzen forwards aufgezaehlt werden
' am besten mache ich das mit einem for to Kram, gibt aber Kopfschmerzen
Dim bcklgunt_i As Long
Dim bcklgunt_i2 As Long
Dim fwdMon As Long
Dim fwdMonnJ As Long
Dim i As Long
Dim jahr As Long
For i = 1 To 13
fwdMon = ComboBox1 + i
If fwdMon > 12 Then fwdMonnJ = ComboBox1 + i - 12
If fwdMon > 12 Then jahr = 2000 + ComboBox2 + 1
If fwdMon > 12 Then _
ActiveCell.Range("A1").AutoFilter field:=8, _
Criteria1:=" bcklgunt_i = Worksheets("Daten").Range("A1").Offset(1, 6).End(xlDown).Row
' hier wird die Formel fuer die Zelle gemacht
If bcklgunt_i = 65536 Then _
x.Worksheets("overview (month)").Cells(8 + i, 3) = 0 _
Else _
x.Worksheets("overview (month)").Cells(8 + i, 3).FormulaLocal = _
"=SUM(Daten!G2:G" & bcklgunt_i & ") - SUM(C7:C" & 7 + i & ")"
' x.Worksheets("overview (month)").Cells(8 + i, 3).Copy
' x.Worksheets("overview (month)").Cells(8 + i, 3).PasteSpecial _
Paste:=xlValues, Operation:=xlNone, SkipBlanks:= False, Transpose:=False
If fwdMon ActiveCell.Range("A1").AutoFilter field _
:=8, Criteria1:=" bcklgunt_i2 = Worksheets("Daten").Range("A1").Offset(1, 6).End(xlDown).Row
' hier wird die Formel fuer die Zelle gemacht
If bcklgunt_i2 = 65536 Then _
x.Worksheets("overview (month)").Cells(8 + i, 3) = 0 _
Else _
x.Worksheets("overview (month)").Cells(8 + i, 3).FormulaLocal = _
"=SUM(Daten!G2:G" & bcklgunt_i2 & ") - SUM(C7:C" & 7 + i & ")"
' x.Worksheets("overview (month)").Cells(8 + i, 3).Copy
' x.Worksheets("overview (month)").Cells(8 + i, 3).PasteSpecial _
Paste:=xlValues, Operation:=xlNone, SkipBlanks:= False, Transpose:=False
Next i
Schaut es Euch am Besten mal an. Vielleicht findet ihr ja einen anderen Weg, wie ich es loesen kann.
Vielen Dank im Voraus
ciao
Gnilk