Lustiges Excel-Phänomen, das mir heute aufgefallen ist:
Excel meint, es gibt einen 29.02.1900, interpretiert 1900 also als Schaltjahr, was eindeutig falsch ist. Das wissen wir aus einer früheren IHK-Prüfung: Der Algorithmus zur Bestimmung eines Schaltjahres ist doch der folgende.
wenn
Jahreszahl mod 400 = 0 -> Schaltjahr
sonst wenn
Jahreszahl mod 100 = 0 -> kein Schaltjahr
sonst wenn
Jahreszahl mod 4 = 0 -> Schaltjahr
sonst
-> kein Schaltjahr
Soviel dazu 😉
Aber jetzt zum eigentlichen Problem: VBA übernimmt diesen Fehler nämlich nicht und interpretiert Datumsangaben vor dem 01.03.1900 somit fälschlicherweise als einen Tag zu früh. 01.01.1900 wird also zu 31.12.1899. Und das ist ein Problem, da das letztgenannte Datum im internen Kalender gar nicht existiert und nen Fehler verursacht (z.B., wenn man (wie ich) das Datum auf Gültigkeit prüft).
D.h. bei Datumsangaben vor dem 01.03.1900, die VBA aus Excel-Zellen ausliest, muss immer ein Tag addiert werden!
14 Jahre später…
Dateadd(“d”,1,#1900/2/28#) => 01.03.1900
😉
Haha, wer lesen kann, ist klar im Vorteil. Auch 14 Jahre später kann denkt Excel, dass 1900 ein Schaltjahr ist. VBA wusste es ja schon immer besser…