Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datum per Inputbox

Datum per Inputbox
30.05.2015 11:37:36
Jens

Hallo liebe Community,
ich komme seit Stunden nicht weiter. Ich möchte per Inputbox eine Bedingung "größer gleich" für ein einzugebendes Datum (Variant) in eine Zelle einlesen. Per Replace habe ich das Datum TT.MM.JJJJ in TT/MM/JJJJ umgewandelt. Wenn ich nun in der Eingabe der Inputbox die Monate mit den Tagen vertausche (amerikanisches Datum), dann ist alles in bester Ordnung. Wenn ich allerdings das deutsche Format einlese, kann er das Kriterium für einen Spezialfilter nicht ausführen.
Für einen Ansatz der "Excel-VBA-Experten" wäre ich sehr dankbar. Dass es hierfür auch andere, nicht mit VBA realisierbare Lösungen gibt, ist mir schon bewusst.
Grüße Jens

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum per Inputbox
30.05.2015 12:23:55
Hajo_Zi
Hallo Jens,
Du hast die Variable für die Inputbox schon als Date definiert?

AW: Datum per Inputbox
30.05.2015 13:12:39
Jens
Hallo Hajo,
vielen Dank für deine prompte Antwort. Nein ich habe die Variable als Variant deklariert. Alles funktioniert auch schön solange ich die amerikanische Datumsvariante eingebe. Eigentlich möchte ich aber doch das deutsche Datum eingeben.
Grüße
Jens

Anzeige
AW: Datum per Inputbox
30.05.2015 13:25:36
Hajo_Zi
Hallo Jens,
mein Vorschlag wurde also gestrichen.
Dann musst Du damit leben das in der Zelle ein Text steht, der wie ein Datum aussieht.
Gruß Hajo

AW: Datum per Inputbox
30.05.2015 16:44:09
Jens
Hallo Hajo,
oh je, da habe ich Dich falsch verstanden. Ich dachte, Du wolltest von mir wissen, wie ich die Variable deklariert habe. Die werde ich natürlich auf Date setzen. Muss ich dann noch etwas formatieren oder ist das dann schon automatisch richtig?
Grüße und tausend Dank

Anzeige
AW: Datum per Inputbox
30.05.2015 16:45:52
Hajo_Zi
es ist dann alles richtig. Die Zelle hat ja schon das gewünschte Format.
Gruß Hajo

AW: Datum per Inputbox
30.05.2015 20:55:20
Luschi
Hallo Jens,
das Alles, was in die InputBox eingetippt wird, vom Typ String/Text ist, mußt Du den
Inhalt in ein Datum umwandeln und das Ergebnis prüfen:

Sub test1()
Dim d As Date
On Error Resume Next
d = CDate(InputBox("Bitte ein gültiges Datum eingeben:", "z.B: 02.12.2014"))
On Error GoTo 0
If Year(d) = 1899 Then
MsgBox "falsche Datumseingabe!", 16 + vbSystemModal
Exit Sub
End If
'hier geht's weiter...
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Datumseingabe mit Inputbox in Excel VBA


Schritt-für-Schritt-Anleitung

Um ein Datum per Inputbox in Excel VBA einzulesen und korrekt zu formatieren, gehe wie folgt vor:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel. Dies kannst Du tun, indem Du Alt + F11 drückst.

  2. Erstelle ein neues Modul über Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub DatumEingabe()
        Dim d As Date
        On Error Resume Next
        d = CDate(InputBox("Bitte ein gültiges Datum eingeben:", "z.B: 02.12.2014"))
        On Error GoTo 0
    
        If Year(d) = 1899 Then
            MsgBox "Falsche Datumseingabe!", vbCritical
            Exit Sub
        End If
    
        ' Hier kannst du das Datum weiterverarbeiten
        Range("A1").Value = d ' Beispiel: Datum in Zelle A1 einfügen
    End Sub
  4. Schließe den VBA Editor und gehe zurück zu Excel.

  5. Führe das Makro aus, um die Inputbox zu testen.


Häufige Fehler und Lösungen

  • Fehler: Falsches Datum wird akzeptiert

    • Lösung: Stelle sicher, dass die Eingabe in der richtigen Form (TT.MM.JJJJ) erfolgt. Der Code überprüft, ob das Jahr 1899 ist, was auf eine fehlerhafte Eingabe hinweist.
  • Fehler: Datum wird nicht erkannt

    • Lösung: Achte darauf, dass die Variable als Date deklariert ist. Wenn du sie als Variant deklariert hast, kann das zu Problemen führen.

Alternative Methoden

Falls Du keine VBA-Lösung verwenden möchtest, kannst Du auch die Datenüberprüfung in Excel nutzen:

  1. Markiere die Zelle, in die das Datum eingegeben werden soll.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle unter „Erlauben“ die Option „Datum“ aus und lege die gewünschten Bedingungen fest.

So kannst Du sicherstellen, dass nur gültige Datumsangaben eingegeben werden.


Praktische Beispiele

Hier ist ein weiteres Beispiel für die Nutzung einer Inputbox zur Datumseingabe:

Sub EingabeUndPruefung()
    Dim eingabe As String
    Dim d As Date

    eingabe = InputBox("Bitte ein Datum im Format TT.MM.JJJJ eingeben:")

    On Error Resume Next
    d = CDate(eingabe)
    On Error GoTo 0

    If d = 0 Then
        MsgBox "Ungültiges Datum!", vbExclamation
    Else
        MsgBox "Das eingegebene Datum ist: " & d
    End If
End Sub

Tipps für Profis

  • Datum formatieren: Stelle sicher, dass die Zelle, in die du das Datum eingibst, das richtige Datumsformat hat (TT.MM.JJJJ), um Missverständnisse zu vermeiden.
  • Debugging: Nutze Debug.Print d, um den Wert von d während der Ausführung zu überprüfen.
  • Fehlerbehandlung: Verwende On Error GoTo, um spezifische Fehlerbehandlung zu implementieren, anstatt nur On Error Resume Next.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur gültige Daten eingegeben werden?
Verwende die On Error-Anweisung, um ungültige Eingaben abzufangen und entsprechende Fehlermeldungen anzuzeigen.

2. Funktioniert das auch in Excel Online?
Leider ist VBA nicht in Excel Online verfügbar. Du musst die Desktop-Version von Excel verwenden, um VBA-Makros zu erstellen und auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige