Clever-Excel-Forum

Normale Version: Kommentare in Kalender
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4
Wer mir dies erklären kann, bekommt ein großes Fleißbienchen!
Direktfenster:
Code:
?CDate("29.2.33")
13.01.1980
Huh
@ Ralf
ich denke MS kanns - wird aber wohl keiner von denen Lust dazu haben.
Aber vielleicht liegt die Ursache in der im Hintergrund verarbeiteten Datumszahl.
Tagesziffern und Monatsziffern springen am Ende eines Zahlenkreises, während die Datumszahl linear weiterläuft.
1.1.23 = 44927
2.1.23 = 44928
 
usw.
31.1.23 = 44957
ja und dann der Sprung.
1.2.23 = 44958
 
Wenn jetzt nach dem Sprung ein nicht real existierendes Datum abgefragt wird die Datumszahl einfach einen falschen/unsinnigen Wert haben.
 
Ich schiebe es auf die Linearität der Datumszahl zu den Zahlensprüngen im Datumsaufbau. Ich kann natürlich auch voll daneben liegen, aber vielleicht kennt snb die wahren Gründe und ist so nett uns das mal zu erklären.
 
Gruß Uwe
Ich gebe mir selbst das Fleißkärtchen.  19
• entferne die Punkte aus 29.2.33
• 29233, als Datum formatiert, ergibt den 13.01.1980

Da ist der Interpretationsspielraum von VBA "etwas" (zu) weit gefasst …
das erklärt die Sache und noch ein anderes nun nicht mehr seltsames Verhalten.
 
Also macht VBA bei unsinnigen Datum einfach eine Datumszahl draus.
Mich hatte schon gewundert, warum bei InstrRev der Punkt nicht gefunden wurde (war mein erster Gedanke das Kalenderjahr egal was davor steht abzutrennen).
 
Gruß Uwe
Hallo Uwe,

wollte dir das in einer privaten Nachricht schreiben, diese Möglichkeit hast du leider deaktiviert. Du weißt schon, dass der Kalender aus deinem letzten Beitrag nicht die Daten des Jahres 2023 darstellt, sondern als Jahr 1900 verwendet?
@Klaus-Dieter,
 
ja das weiß ich, dass der Kalender, welcher nicht von mir ist, sondern vom TO keine zum Kalenderjahr korrelierenden Werte in den Zellen enthält und somit die Zahl 1 (1. Januar) also Datumszahl 1 für #31.12.1899# formelbedingt ausgibt.

Das hatte ich schon in #2 dem TO mitgeteilt und das ein Auffinden via Dateserial mittels .Find nur über Umwege möglich ist.
In seinem Fall habe ich es mit Ranges-Namen (siehe Namensmanager) identifizierbar gemacht, so dass das Dateserial sich entsprechend zusammenbauen lässt.

Was das letzte Problem war, ist das Eintragen ungültiger Datumswerte ins Listobject zu verhindern. Dabei tauchte bei Kurzdatumseingaben der Fall auf, dass VBA einfach die Punkte rauschmeißt und aus den Ziffern eine Datumszahl macht - rausbekommen hats Ralf.

Als Lösung des Problems kann man den Weg über Split (weil Variant String) gehen, um mit IsDate sich ein Dateserial zusammenzubauen lässt, was als vollständiges Datum zur Auswertung IsDate = False (kein Datum) herangezogen werden kann.

Es mag sicherlich weitere und durchaus elegantere Möglichkeiten zu diesem Thema geben. Es war eben mein Lösungsweg dazu.
Aber danke für die Rückmeldung und schöne Feiertage
 
Gruß Uwe
Hallo Uwe,

OK, den vollständigen Beitrag hatte ich nicht gelesen, war über das Datum-Problem nur gestolpert, weil ich ein allgemeines Interesse an Excel-Kalendern aller Art habe. Habe da auch Lösungsansätze für das Thema Kommentare in Verbindung mit Kalenderdaten. Hatte das Beispielsweise für die Anzeige von Feiertagen genutzt. Weil mich der TO hier im Forum vor einiger Zeit von der Seite "angepault" hatte, helfe ich ihm nicht mehr. Grundsätzlich ist es kein Problem, solch einen Kalender mit echten Datumseinträgen zu versehen. 
Dir ein schönes Restweihnachten und einen guten Rutsch ins neue Jahr.
Erstmal allen hier zu den Beiträgen vielen Dank für Eure Hilfe, vorallen an @Egon12

Jetzt funzen die Kommentare, auch wenn ein falscher Datumswert eingetragen wird.

Doppelte Datumeingaben werden jetzt markiert und über eine MsgBox angezeigt

Wenn ich noch etwas Lust find, werde ich die Feiertage genau so mit Kommentaren markieren.

Nochmals vielen Dank!
Seiten: 1 2 3 4