habe jetzt das halbe Forumsarchiv durchwühlt und trotzdem keine Lösung gefunden:
In Spalte 26 steht ein Datum (z.B. 10.05.06). Die dazugehörige Kalenderwoche soll mit der aktuellen KW verglichen werden, und wenn sie 2 oder mehr KW zurückliegt, soll der zugehörige Wert in Spalte 1 gelöscht werden.
Mein Code sieht wie folgt aus:
ls = Cells(Rows.Count, 1).End(xlUp).Row
For i = ls To 5 Step -1
If KWoche(Date) - 1 > KWoche(Cells(i, 26)) Then
Cells(i, 1).Delete
End If
Next i
Für die KW benutze ich die bewährte Funktion
Function KWoche(d As Date)
Dim t As Long
d = Date
t = DateSerial(Year(d + (8 - Weekday(d)) Mod 7 - 3), 1, 1)
KWoche = ((d - t - 3 + (Weekday(t) + 1) Mod 7)) \ 7 + 1
End Function
Beim Ausführen kommt zwar keine Fehlermeldung, es passiert aber auch sonst nichts. Wenn ich einen Haltepunkt setze, kann man sehen, dass die Variablen ls, i, Date und der Zellinhalt von Cells(i, 26) richtig erkannt werden.
Kann mir jemand sagen, wo der Fehler liegt?