Wie kann man dieses Textdatum innerhalb eines VBA- Makros in ein echtes Datum umwandeln ?"
Sub Beispiel()
Dim Dat As Variant
Dat = InputBox("Geben Sie ein Datum ein!")
If Not IsDate(Dat) Then
MsgBox "Kein gültiges Datum!"
Exit Sub
End If
MsgBox CDate(Dat)
End Sub
Um ein Datum über eine InputBox in VBA abzufragen und sicherzustellen, dass es als echtes Datum erkannt wird, kannst Du folgende Schritte befolgen:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Erstelle ein neues Modul: Klicke auf Einfügen > Modul.
Füge den folgenden VBA-Code in das Modul ein:
Sub Beispiel()
Dim Dat As Variant
Dat = InputBox("Geben Sie ein Datum ein!")
If Not IsDate(Dat) Then
MsgBox "Kein gültiges Datum!"
Exit Sub
End If
MsgBox CDate(Dat)
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.
Dieser Code fragt den Benutzer über eine InputBox nach einem Datum und überprüft, ob die Eingabe ein gültiges Datum ist. Falls nicht, wird eine Fehlermeldung angezeigt.
Fehler: "Kein gültiges Datum!"
dd.mm.yyyy oder mm/dd/yyyy).Fehler: Das Datum wird als Text behandelt.
CDate, um das Datum korrekt zu formatieren. Im obigen Beispiel wird dies bereits berücksichtigt.Eine alternative Methode zur Eingabe von Daten in VBA ist die Verwendung von benutzerdefinierten Formularen (UserForms). Hier kannst Du ein Eingabefeld für das Datum erstellen und die Benutzereingabe einfacher validieren.
Nutze den folgenden Code im Button-Klick-Ereignis:
Private Sub CommandButton1_Click()
Dim Dat As Variant
Dat = Me.TextBox1.Value
If Not IsDate(Dat) Then
MsgBox "Kein gültiges Datum!"
Exit Sub
End If
MsgBox CDate(Dat)
End Sub
Hier sind einige praktische Beispiele für die Verwendung der InputBox in VBA zur Datumseingabe:
Einfaches Datum abfragen:
Sub DatumAbfragen()
Dim Eingabe As Variant
Eingabe = InputBox("Bitte geben Sie ein Datum ein (z.B. 01.01.2024):")
If IsDate(Eingabe) Then
MsgBox "Das eingegebene Datum ist: " & CDate(Eingabe)
Else
MsgBox "Ungültiges Datum!"
End If
End Sub
Datum in eine Zelle einfügen:
Sub DatumInZelle()
Dim Eingabe As Variant
Eingabe = InputBox("Geben Sie ein Datum ein:")
If IsDate(Eingabe) Then
Cells(1, 1).Value = CDate(Eingabe)
Else
MsgBox "Bitte ein gültiges Datum eingeben."
End If
End Sub
Verwendung von Datumsformaten: Achte darauf, das Datum im gewünschten Format abzufragen. Du kannst die Format-Funktion verwenden, um das Datum nach der Eingabe zu formatieren:
MsgBox "Formatierter Datum: " & Format(CDate(Dat), "dd.mm.yyyy")
Fehlerbehandlung: Implementiere eine Fehlerbehandlung, um unerwartete Eingaben elegant zu handhaben. Nutze dazu On Error Resume Next und überprüfe das Ergebnis.
1. Wie kann ich das Datumsformat in der InputBox ändern?
Die InputBox selbst bietet keine Möglichkeit zur Formatierung. Du kannst jedoch die Eingabe nach der Abfrage mit der Format-Funktion anpassen.
2. Was ist der Unterschied zwischen CDate und IsDate?
CDate konvertiert einen Text in ein Datum, während IsDate überprüft, ob ein Wert als Datum interpretiert werden kann. Verwende IsDate, um sicherzustellen, dass die Eingabe gültig ist, bevor Du CDate anwendest.
3. Welche Excel-Versionen unterstützen diesen Code? Der Code sollte in allen modernen Excel-Versionen (Excel 2007 und neuer) funktionieren.