Re: nochmals:Datumsformat in msg-Box
08.05.2002 00:05:10
Jürgen
"Kann man das in der Änderung auch zum Laufen bringen?"Da die Fehlerabfrage sich im VBA-Code vor der Änderung befindet wird sie durch die Änderung nicht beeinflusst; sie 'greift' halt nur selten, z.B. bei Buchstabeneingabe!
Eine Möglichkeit utopische Datumseingaben abzufangen ist z.B. im Tabellenblatt die Zelle mit
Daten -> Gültigkeit -> Einstellungen -> zulassen -> Datum
zu formatieren.
Zusätzlich vielleicht noch im VBA-Code die Zeichenlänge (max. 10 Zeichen), was vor dem ersten Punkt steht (sollte < 32 sein), zwischen den Punkten (>13) ...
Der Code ist zwar jetzt ein wenig länger, aber so klappt es bei mir ganz gut!
Ersetze den alten VBA-Code nach der Zeile: If strDatum_neu = "" Then Exit Do
Mit folgendem
Dim TT$, MM$, JJJJ$
On Error Resume Next
TT = Left(strDatum_neu, InStr(strDatum_neu, ".") - 1)
MM = Left(Mid(strDatum_neu, Len(TT) + 2), InStr(Mid(strDatum_neu, Len(TT) + 2), ".") - 1)
JJJJ = Mid(Mid(strDatum_neu, Len(TT) + 2), Len(MM) + 2)
If IsDate(strDatum_neu) = False Or _
Len(strDatum_neu) > 10 Or Len(TT) > 2 Or Len(MM) > 2 Or Len(JJJJ) > 4 Or _
CInt(TT) > 31 Or CInt(MM) > 12 Then
MsgBox "Fehler bei der Eingabe des Datums!", _
vbExclamation, "Hinweis"
strDatum_neu = ""
End If
Loop
DATUMSABFRAGE = Format(CDate(strDatum_neu), "dd.mm.yyyy")
End Function
Gruss Jürgen
PS: was muss ich nochmal am Anfang und am Ende des VBA-Code schreiben damit er hier Forum richtig dargestellt wird?
~start
~ende