Datum Überprüfen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
TextBox MsgBox
Bild

Betrifft: Datum Überprüfen
von: Peter (hpo)
Geschrieben am: 13.11.2015 07:05:10

Hallo Zusammen
Wieder einmal benötige ich Eure Hilfe.
Problem:
In einer UF ist der Textbox5 folgender Code hinterlegt

Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox5 = "" Then Exit Sub
If Not IsDate(TextBox5) Then
    MsgBox "Bitte ein korrektes Datum in VK-Datum eingeben", vbExclamation, "Meldung"
    TextBox5 = ""
End If
End Sub

Dadurch soll überprüft werden ob ein korrektes Datum eingetragen wurde.
Nun ist es so, dass wenn ich z.B. 02.13.2015 eingeben, wird das so akzeptiert obwohl es kein Monat 13 gibt.
Meine frage ist:
wie kann ich überprüfen ob auch ein korrekter Monat oder auch Tag (z.B 33.) eingetragen wurde.
Für Eure Hilfe bereits im Voraus vielen Dank.
Viele Grüße
Peter (hpo)

Bild

Betrifft: Format-Problem?
von: MCO
Geschrieben am: 13.11.2015 07:35:55
Moin!
Hast du evtl ein Format-Problem? Im englischen ist Monat + Tag vertauscht, es gibt also den 13.2.15.
Prüfe das mal und formatiere vor der Prüfung durch die Prozedur den Datumswert um.
Gruß, MCO

Bild

Betrifft: Sprachverwirrung
von: RPP63
Geschrieben am: 13.11.2015 07:54:14
Hallo!
Ist ein allgemeines VBA-Problem, welches sich ohne weiteres wohl nicht lösen lässt.
Selbst wenn Du 2-13 in die Textbox eingibst, wird es als korrektes Datum 13.02.2015 erkannt, da hilft auch die bereits vorgeschlagene Formatierung nichts.
Hilft Dir nicht weiter, deshalb stelle ich den Thread wieder auf offen.
Gruß Ralf

Bild

Betrifft: für deutsches Datumsformat "TT.MM.JJJJ"
von: Tino
Geschrieben am: 13.11.2015 08:48:27
Hallo,
evtl. könnte man die Prüfung so durchführen.
Die eingabe für ein richtiges Datum im Format "TT.MM.JJJJ"

Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not CheckDate_DE(TextBox5) Then
    MsgBox "Bitte ein korrektes Datum in VK-Datum eingeben", vbExclamation, "Meldung"
    TextBox5 = ""
End If
End Sub
Function CheckDate_DE(sTxTDate$) As Boolean
Dim varDate, tmpDate As Date
If sTxTDate <> "" Then
    If IsDate(sTxTDate) Then
        varDate = Split(sTxTDate, ".")
        If UBound(varDate) = 2 Then
            tmpDate = DateSerial(varDate(2), varDate(1), varDate(0))
            CheckDate_DE = (sTxTDate = Format(tmpDate, "dd.mm.yyyy"))
            Exit Function
        End If
    End If
End If
End Function
Gruß Tino

Bild

Betrifft: AW: für deutsches Datumsformat "TT.MM.JJJJ"
von: Peter (hpo)
Geschrieben am: 13.11.2015 10:30:54
Hallo Zusammen
@ MCO
Danke für Deine Beitrag
Das Datumsformat ist korrekt eingestellt. Deutsches datum (TT.MM.JJJJ)
@ Ralf
Auch Dir ein Danke für Deinen Beitrag.
@ Tino
Viele Dank für Deinen Lösungsvorschlag
Aber leider erhalte ich hier eine Fehlermeldung:
"Fehler beim Kompilieren:
Projekt oder Bibliothek nicht gefunden."
In der Function wird Format blau unterlegt.
Viele Grüße
Peter (hpo)

Bild

Betrifft: AW: für deutsches Datumsformat "TT.MM.JJJJ"
von: EtoPHG
Geschrieben am: 13.11.2015 11:08:03
Hallo Peter,
Ich sehe keinen Fehler in Tino's Code.
Hast du ev. irgendwo eine Sub oder Function die Format heisst in deinen Codes? Sehr gefährlich, da dies ein VBA Schlüsselwort ist!
Hier noch ein alternativer Ansatz:

Private Sub TextBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    On Error GoTo error_exit
        If Not (Len(TextBox5) > 0 And IsDate(TextBox5) And _
               TextBox5 = Format(CDate(TextBox5), "dd.mm.yyyy")) Then _
            GoTo error_exit
    Exit Sub
error_exit:
    MsgBox "Bitte ein korrektes Datum (TT.MM.JJJJ) in VK-Datum eingeben", _
    vbExclamation, "Falsche Eingabe"
    Err.Clear
    TextBox5 = ""
End Sub
Gruess Hansueli

Bild

Betrifft: AW: für deutsches Datumsformat "TT.MM.JJJJ"
von: Peter (hpo)
Geschrieben am: 13.11.2015 12:40:18
Hallo Hansueli
Vielen Dank für Deine Hilfe.
Es scheint so, das ich eine Bibliothek nich habe. Da in der Function von Tino die Format anweisung Blau unterlegt wird.
Bei Deinem Code erhalte ich die gleiche Fehlermeldung und bei der Format anweisung wird die Textbox5 blau unterlegt.
Viele Dank
Gruß
Peter (hpo)

Bild

Betrifft: AW: für deutsches Datumsformat "TT.MM.JJJJ"
von: hary
Geschrieben am: 13.11.2015 12:49:17
Moin
Schau mal im VBA-Editor unter Extras/Verweise ob da "NICHT VORHANDEN" ein Haken gesetzt ist. Wenn ja dann rausnehmen.
gruss hary

Bild

Betrifft: AW: für deutsches Datumsformat "TT.MM.JJJJ"
von: Peter (hpo)
Geschrieben am: 13.11.2015 20:26:05
Hallo Hary
Vielen Dank für Deinen Tipp.
DAS WAHRS ;) ;)
Vielen Dank
Gruß
Peter (hpo)

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datum Überprüfen"