VBA - If-Abfrage für Datum funktioniert nicht

rhodium

Cadet 3rd Year
Registriert
Feb. 2013
Beiträge
63
Hey,

kann mir jemand bei VBA helfen und sagen, was an Folgendem rot markiertem falsch ist:

Dim STColumn As Integer
'STColumn nimmt zb den Wert 5 an (ist geprüft).
Dim Datum1 As Date 'Datum2 analog
Datum1 = Workbooks("Muster.xlsm).Worksheets("Start").Range("B8")
'Datum1/2 hat gemäß msgbox den Wert 01.09.2021 bzw. 30.09.2021 an.

For i [...] 'reihe fpr reihe von unten nach oben

Cells (i, STColumn).NumberFormat = "m/d/yyyy"
If Cells (i, STColumn).Value < Datum1 And Cells (i, STColumn).Value > Datum2 Then
Rows.Delete
End if



Vielen Dank.
 
Zuletzt bearbeitet:
jube schrieb:
Hi warum haben Monat und Tag nur eine Stelle und Jahr nur drei?
ein y hatte ich beim kopieren vergessen.
Den rest gibt mir die Makroaufnahme so aus. Es macht aber auch keinen Unterschied, wenn ich mm und dd schreibe oder auch dd/mm/yyyy.
Ergänzung ()

Ich denke, dass das Problem ein tiefergreifendes ist und mit den vergleichenden Daten zu tun hat, die ich hier aber nicht preisgeben kann.

Ich werde es jetzt einfach ganz anders lösen.

Thema kann dann geschlossen werden.
 
Zuletzt bearbeitet:
Hi.

Es kommt vor, dass er Cells (i, STColumn).Value als Text o.ä. interpretiert.
Hier hilft CDate(Cells (i, STColumn).Value). Das wirft dann aber wiederum einen Fehler, wenn es nicht in ein Datum konvertierbar ist. Also eventuell noch eine isdate - Prüfung für den Wert einfügen.

Wenn es partout nicht klappt kannst du es ja auch in einem integer-wert wandeln und den vergleichen. Sollte aber gehen...
 
Du solltest dein Makro mal anhalten, wenn es beim Vergleich ist und dir den Inhalt der Variablen anschauen. Dann wirst du wahrscheinlich recht schnell sehen, wo es hängt.
 
Zurück
Oben