ich habe mal wieder ein problem, die Datei habe ich unter
https://www.herber.de/bbs/user/52727.xls hochgeladen.
Mit dem unten stehenden Code möchte ich prüfen, ob das Datum korrekt in die Inputbox eingegeben wurde (TT.MM.JJJJ). Ich bekomme aber immer den Fehler, dass mit len() immer 8 Stellen erkannt werden statt 10, obwohl ich das Jahr mal mit 4 und mal mit nur 2 Stellen schreibe.
Liegt das daran, dass ich zu Hause Excel 11 benutze? Oder wandelt Excel Date-Werte immer in 8 Stellen um?
m.f.G.
Harald
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Datum As Date ' Datum der eingegebenen Daten
Dim DatumNeu As Date ' geändertes Datum der eingegebenen _
Daten
Dim strTitel As String ' Fenstername
Dim strMeldung As String ' Meldung für User
Datum = ThisWorkbook.Sheets("Tabelle1").Cells(8, "A").Value
strTitel = "Tag der angegebenen Werte eingeben"
strMeldung = "Die eingegebenen Werte sind vom:" & Chr$(10) _
& "(Tag und Monat zweistellig, Jahr vierstellig, jewels Punkt dazwischen: TT.MM. _
JJJJ)"
DatumNeu = "31.03.9999" ' hiermit wird erreicht, dass Inputbox erstmals aufgerufen wird
While ((Not IsDate(DatumNeu)) Or (DatumNeu > Date) Or (Len(DatumNeu) 10))
' Nur wenn Datum erkannt, älter als heute und 10-stellig eingegeben wurde wird die _
Schleife verlassen
DatumNeu = InputBox(strMeldung, strTitel, Datum)
If Not IsDate(DatumNeu) Or Len(DatumNeu) 10 Then
MsgBox ("Falsche Datumseingabe Tag(2-stellig).Monat(2-stellig).Jahr(4-stellig) _
eingeben!")
ElseIf DatumNeu >= Date Then
MsgBox ("Datum muss vor heute sein!")
End If
Wend
ThisWorkbook.Sheets("Tabelle1").Cells(48, "A").Value = DatumNeu
MsgBox (DatumNeu)
End Sub