HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in VBA
Yal
27.04.2026 10:13:05
AW: eingegebenes Datum mit VBA in TT.MM.JJJJ umwandeln
Hallo Christian,

dein Problem kann extrem komplex werden, wenn man die Voraussetzung annimmt, wie Du sie beschreibst.
Jedoch kann man die Lösung extrem einfach haben, wenn der erfassende Mensch bereit wäre, eine Einschränkung im Kauf zu nehmen: das Datum müsste in der Form
JJJJ-MM-TT erfasst werden!
Also zuerst Jahr, Monat als Zahl und Tag als Zahl, jeweils mit "-" getrennt. Es ist übrigens die ISO-Form eines Datums (daher nicht aus persönlicher Kreativität entstanden).
Man dürfte dabei den Tag oder Monat und Tag (und jeweilige "-") weglassen: 1974, 1974-11, usw.

Eine automatische Korrektur erfolgt mit folgendem Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim D

Application.EnableEvents = False
On Error Resume Next
D = Split(Target.Value & "-99-99", "-")
If D(1) = 99 Then D(1) = 12
If D(2) = 99 Then D(2) = Day(DateSerial(D(0), D(1) + 1, 0))
Target.Value = Format(DateSerial(D(0), D(1), D(2)), "DD.MM.YYYY")
Application.EnableEvents = True
End Sub

Auf dem Register des Arbeitsblattes rechtklicken, "Code anzeigen" auswählen und Code in der gerade geöffneten Modul reinkopieren.

Achtung: bei Eingabe ausserhalb der Rahmen, also Monat > 12 oder Tag > Tag-im-Monat, wird ein Datum trotzdem berechnet! Monat 13 = Januar vom nächsten Jahr, usw.

VG
Yal
Als Antwort auf diesen Beitrag
Christian
27.04.2026 09:36:05
eingegebenes Datum mit VBA in TT.MM.JJJJ umwandeln
Hallo, ich bitte euch um Hilfe.
Ist es irgendwie möglich mit VBA folgendes zu erreichen (automatisch bei Eingabe in Spalte E)

Eingabe: 1974 Ausgabe 31.12.1974 (also Jahresende)
Eingabe Januar 1974 Ausgabe 31.01.1974 (also Monatsende)
Eingabe eines kompletten Datums, Ausgabe dieses Datums in TT.MM.JJJJ, also keine Umwandlung ins Monatsende, wenn ich den Monatsersten mit eingegeben habe

Das Ganze soll natürlich auch für die anderen 11 Monate und alle anderen Jahrgänge funktionieren.
Die Daten werden so wie ich sie als Eingabe beschrieben habe aus dem Internet kopiert und in Excel eingefügt.

Vielen Dank
Christian

PS: Ich weiß dass meine bisherigen Versuche vermutlich daran gescheitert sind, dass Excel aus der Eingabe Januar 1974 intern den 1.1.74 macht und danach nicht mehr unterscheiden kann, ob ich den Tag mit eingegeben hatte oder nicht. Ich hoffe ihr kennt trotzdem eine Lösung
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.