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

VBA Datum über InputBox

Forumthread: VBA Datum über InputBox

VBA Datum über InputBox
17.01.2004 19:31:28
Jürgen Hufer
Das über eine Input.Box- Abfrage erhaltene Kalenderdatum - zB. 01.01.2004 - erkennt das VBA Makro nur als Text.
Wie kann man dieses Textdatum innerhalb eines VBA- Makros in ein echtes Datum umwandeln ?"
Anzeige

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

Betreff
Datum
Anwender
Anzeige
CDate oT
17.01.2004 19:33:19
Gerd
oT
AW: CDate oT
17.01.2004 19:59:16
Jürgen H
Hallo Gerd,
danke für die Antwort. Ich kann damit aber leider garnichts anfangen.
Ich möchte lediglich über die Inputbox einen Kalender per makro ausdrucken.
Das Makro soll auch auf anderen PC's von Anwendern nutzbar sein, die sich nicht unbedingt mit der weiteren Materie auskennen.
Gruß
Jürgen
Anzeige
AW: CDate oT
17.01.2004 20:27:40
Gerd
War wohl etwas knapp:
Option Explicit

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

Gerd
AW: CDate oT
17.01.2004 20:35:48
jürgenH
Hallo Gerd,
vielen Dank für die Antwort, ich werde mich damit beschäftigen.

Gruß
Jürgen
Anzeige
AW: VBA Datum über InputBox
17.01.2004 19:33:40
Hajo_Zi
Hallo Jürgen
ein Hallo zu Beginn und ein Gruß am Ende läst den Beitrag doch gleich viel freundlicher aussehen. Auch wenn Du den Beitrag am Computer eingibst sitzen an der anderen Seite doch Leute und keine Maschinen die Deine Frage beantworten und da sollte Zeit für die paar Worte doch vorhanden sein.
Cdate(Variable) oder Variable als Date Definieren.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Pro und Excel Version XP Pro


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Datum über InputBox in Excel


Schritt-für-Schritt-Anleitung

Um ein Datum über eine InputBox in VBA abzufragen und sicherzustellen, dass es als echtes Datum erkannt wird, kannst Du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  3. 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
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. 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.


Häufige Fehler und Lösungen

  • Fehler: "Kein gültiges Datum!"

    • Lösung: Stelle sicher, dass das eingegebene Datum im richtigen Format vorliegt (z.B. dd.mm.yyyy oder mm/dd/yyyy).
  • Fehler: Das Datum wird als Text behandelt.

    • Lösung: Verwende die Funktion CDate, um das Datum korrekt zu formatieren. Im obigen Beispiel wird dies bereits berücksichtigt.

Alternative Methoden

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.

  1. Erstelle ein neues UserForm.
  2. Füge ein Textfeld und einen Button hinzu.
  3. 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

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung der InputBox in VBA zur Datumseingabe:

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

Tipps für Profis

  • 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.


FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige