Inhalt der Textbox in Datum umwandeln
Schritt-für-Schritt-Anleitung
Um den Inhalt einer Textbox in ein Datumsformat zu konvertieren, kannst du folgendes VBA-Skript verwenden. Dieser Code wandelt verschiedene Eingabeformate in das Format "TT.MM.JJJJ" um. Stelle sicher, dass du diesen Code in das entsprechende UserForm einfügst:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim sDatum As String
Dim sEingabe As String
Dim sJahr As String
Dim sMonat As String
Dim sTag As String
If Not Me.TextBox1.Value = "" Then
Application.EnableEvents = False
On Error GoTo Fehler
sEingabe = CStr(CLng(Trim(Me.TextBox1.Value)))
If Left(Me.TextBox1.Value, 1) = "0" Or Len(sEingabe) = 5 Or Len(sEingabe) = 7 Then
sEingabe = "0" & sEingabe
End If
If Len(sEingabe) = 6 Then
sTag = Left(sEingabe, 2)
sMonat = Mid(sEingabe, 3, 2)
sJahr = Right(sEingabe, 2)
sJahr = IIf(Val(sJahr) > 30, "19" & sJahr, "20" & sJahr)
ElseIf Len(sEingabe) = 8 Then
sTag = Left(sEingabe, 2)
sMonat = Mid(sEingabe, 3, 2)
sJahr = Right(sEingabe, 4)
End If
sDatum = sTag & "." & sMonat & "." & sJahr
If IsDate(sDatum) Then
Me.TextBox1.Value = sDatum
Else
MsgBox "Bitte ein richtiges Datum eingeben!"
Me.TextBox1.SetFocus
End If
Application.EnableEvents = True
On Error GoTo 0
End If
End Sub
Häufige Fehler und Lösungen
-
Fehler: Ungültiges Datum wird akzeptiert
- Lösung: Stelle sicher, dass du die
IsDate()
-Funktion verwendest, um ungültige Datumsangaben zu filtern.
-
Fehler: Cursor springt nicht zurück zur Textbox
- Lösung: Füge
Me.TextBox1.SetFocus
nach der MsgBox hinzu, um den Fokus zurück zur Textbox zu setzen.
Alternative Methoden
Eine alternative Methode zur Umwandlung von Datumseingaben ist die Nutzung von Excel-Formeln, wenn keine VBA-Programmierung gewünscht ist. Die Formel =DATUM(JAHR(A1);MONAT(A1);TAG(A1))
kann verwendet werden, um ein Datum aus separaten Zellen zu erstellen. Diese Methode ist jedoch nicht so flexibel wie VBA.
Praktische Beispiele
-
Eingabe: 01012007
-
Eingabe: 010107
-
Eingabe: 31022020
- Ausgabe: 31.02.2020 (wird als ungültig erkannt)
Tipps für Profis
- Nutze die
Format()
-Funktion, um die Ausgabe in verschiedenen Formaten anzuzeigen, z.B. Format(TextBox1.Value, "dd.mm.yyyy")
.
- Um die Benutzerfreundlichkeit zu verbessern, kannst du Platzhalter in die Textbox einfügen, die das erwartete Format anzeigen.
- Implementiere eine Validierung für die Eingabe, um sicherzustellen, dass nur numerische Werte eingegeben werden.
FAQ: Häufige Fragen
1. Wie kann ich das Datum in ein anderes Format umwandeln?
Du kannst die Format()
-Funktion verwenden, um das Datum in ein gewünschtes Format zu konvertieren.
2. Welche Excel-Version wird benötigt?
Der Code funktioniert in Excel-Versionen ab 2007, die VBA unterstützen. Achte darauf, dass Makros aktiviert sind.
3. Was passiert, wenn ich ein falsches Datum eingebe?
Wenn ein ungültiges Datum eingegeben wird, erscheint eine MsgBox, die dich auffordert, ein korrektes Datum einzugeben, und der Cursor springt zurück zur Textbox.