Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: inputbox mit Datum

inputbox mit Datum
03.03.2007 22:45:00
Fritz
Hallo, wer kann mir helfen?
Habe Variable Dim a as Date deklariert.
Wenn ich über die inputbox ein Datum eingebe und danach suchen lasse, funktioniert alles.
Wenn ich aber auf "abbrechen" klicke bringt er mir eine Fehlermeldung in der Zeile der inputbox im Makro
Die Variable a ist dann 0:0:0
Wie kann ich solch eine Inputbox richti "Abbrechen"?
Gruß
Fritz
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: inputbox mit Datum
03.03.2007 23:10:00
Josef
Hallo Fritz,
das geht z.b. so.
Sub Datum_Per_Inpubox()
    Dim result As Variant
    
    result = Application.InputBox("Datum:", "Datum", Format(Date, "dd.mm.yyyy"), Type:=1)
    
    If Not IsDate(CDate(result)) Or result = "Falsch" Then Exit Sub
    
    MsgBox CDate(result)
    
End Sub

Gruß Sepp
Anzeige
AW: inputbox mit Datum
03.03.2007 23:44:24
Erich
Hi Sepp,
IsDate(CDate(...)) ist wohl nicht wirklich sinnvoll:
Wenn's kein Datum ist, geht CDate schon kaputt, bevor IsDate zuschlagen kann.
Mein Vorschlag, bei dem man dem Datum Grenzen setzen kann:
Sub Datum_Inputbox()
Dim result As Variant
result = Application.InputBox("Datum:", "Datum", Format(Date, "dd.mm.yyyy"), Type:=1)
If result = "Falsch" Then Exit Sub
If CDbl(result) < DateValue("01.01.1880") Then Exit Sub     ' geht ab  01.01.0100
If CDbl(result) > DateValue("31.12.2120") Then Exit Sub     ' geht bis 31.12.9999
MsgBox CDate(result)
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: inputbox mit Datum
03.03.2007 23:50:46
Josef
Hallo Erich,
na dann gib mal "3/3/07" ein und prüfe das mit "IsDate()".
Oder wandle die selbe Eingabe mal mit "Cdbl()" um.
Dies Art der Eingabe ist aber für ein Datum üblich.
Gruß Sepp
AW: inputbox mit Datum
03.03.2007 23:56:27
Erich
Hi Sepp,
die Eingabe 3/3/07 läuft in meiner Version problemlos durch, oder?
Teste doch mal beide Versionen mit 111111111.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: inputbox mit Datum
04.03.2007 04:18:54
Hans
Hallo,
ich wollte nur mal testen, ob das Passwort von Fritz wirklich nicht erkannt wird. Wenn der Beitrag erscheint, wurde es erkannt.
Gruss hans
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Makro erstellen: Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul hinzu.
  2. 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
  3. 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:

  1. 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
  2. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige