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
Christian
27.04.2026 10:20:57
AW: eingegebenes Datum mit VBA in TT.MM.JJJJ umwandeln
Hallo Yal,

erstmal vielen Dank.
Das Problem ist jetzt nur, wie bringe ich es ins Format JJJJ-MM-TT. Wie ich ja bereits sagte, ich mache da Copy + Paste von einer Internetseite (IMDB).
Das einzige, was mir da einfällt, ist abtippen im entsprechenden Format. Was zu dem Problem führt, weshalb ich das Ganze überhaupt angefragt habe, um Tippfehler bei den Daten zu vermeiden, die ich nicht 1:1 kopieren und einfügen kann.
Wobei ich dann ja auch direkt anstatt es im Format JJJJ-MM-TT einzugeben auch direkt das gewünschte Ergebnis eintippen kann.
Oder wie hast du dir das vorgestellt? Anders als so habe ich deinen Beitrag leider nicht verstanden.

Gruß
Christian
Als Antwort auf diesen Beitrag
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
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.