Inputbox für Datumsangaben in VBA
Schritt-für-Schritt-Anleitung
Um eine Inputbox in VBA zu erstellen, die ein Datum akzeptiert, kannst du die folgende Vorgehensweise nutzen:
- Makro erstellen: Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul hinzu.
-
Code eingeben:
Sub Datum_Per_Inputbox()
Dim result As Variant
result = Application.InputBox("Datum:", "Datum", Format(Date, "dd.mm.yyyy"), Type:=1)
If result = "Falsch" Then Exit Sub
If Not IsDate(result) Then
MsgBox "Bitte ein gültiges Datum eingeben."
Exit Sub
End If
MsgBox CDate(result)
End Sub
- Das Makro ausführen: Starte das Makro, um die Inputbox zu testen.
Achte darauf, dass die Eingabe als Datum formatiert ist. Du kannst auch die Eingabewerte mithilfe der Funktion CDate konvertieren.
Häufige Fehler und Lösungen
-
Fehler: "Typ nicht korrekt" bei Abbrechen
Wenn du auf "Abbrechen" klickst, kann die Variable result einen leeren Wert haben. Stelle sicher, dass du eine Prüfung auf leere Eingaben vornimmst:
If result = "" Then Exit Sub
-
Fehler: Ungültiges Datum
Verwende IsDate vor der Konvertierung mit CDate, um sicherzustellen, dass das Datum gültig ist.
Alternative Methoden
Eine alternative Methode, um ein Datum über eine Inputbox abzufragen, ist die Verwendung der Type:=2-Option, die die Eingabe als Text zulässt. Du kannst dann die Eingabe manuell verarbeiten:
result = Application.InputBox("Gib ein Datum ein:", "Datum", Type:=2)
If IsDate(result) Then
MsgBox "Das eingegebene Datum ist: " & CDate(result)
Else
MsgBox "Ungültiges Datum eingegeben."
End If
Praktische Beispiele
Hier sind einige praktische Beispiele, die dir helfen, die Inputbox für Datumsangaben besser zu verstehen:
-
Eingabe mit Datumseinschränkung:
If CDbl(result) < DateValue("01.01.1880") Or CDbl(result) > DateValue("31.12.2120") Then
MsgBox "Datum außerhalb des erlaubten Bereichs."
Exit Sub
End If
-
Formatierung des Datums:
MsgBox "Das Datum im Format dd.mm.yyyy: " & Format(CDate(result), "dd.mm.yyyy")
Tipps für Profis
- Verwendung von
access CDate: Stelle sicher, dass du CDate nur auf gültige Daten anwendest, um Laufzeitfehler zu vermeiden.
- Inputbox-Anpassung: Du kannst die Standardwerte in der Inputbox anpassen, um den Nutzern zu helfen, das korrekte Format zu verwenden.
- Erweiterte Validierung: Überlege, eine Schleife zu verwenden, um die Eingabe so lange zu wiederholen, bis ein gültiges Datum eingegeben wird.
FAQ: Häufige Fragen
1. Wie kann ich sicherstellen, dass ein Datum im richtigen Format eingegeben wird?
Verwende die Funktion IsDate, um zu überprüfen, ob die Eingabe ein gültiges Datum ist, bevor du mit CDate arbeitest.
2. Was passiert, wenn ich "Abbrechen" drücke?
Wenn du auf "Abbrechen" drückst, kann die Variable leer sein. Stelle sicher, dass du eine Überprüfung dafür in deinem Code implementierst.