AW: Eingabe in USERFORM/Prüfen ob Wert vorhand
21.06.2009 19:12:02
Peter
Hallo Hajo,
hab' deinen Lösungsvorschlag getestet. Leider erscheint der msg-Hinweis "nicht vorhanden"
egal, ob das Datum vorhanden ist oder nicht.
Hatte mir das so vorgestellt, dass ähnlich wie beim u. g. Datumsfeld direkt bei Eingabe des Preises
z. B. von Produkt A der Hinweis erscheint "Preis von A am 23.05.2009 schon vorhanden."
Danke dir aber für deine Hilfe. Werde versuchen, es irgendwie hinzubekommen.
Private Sub Datum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If DatumGetestet(Datum.Value) = False Then
Cancel = True
MsgBox "Bitte richtiges Datum eingeben"
Application.EnableEvents = False
Datum.SetFocus
Application.EnableEvents = True
Else
Datum = Format(DatumGetestet(Datum.Value), "dd/mm/yyyy")
End If
End Sub
Public Function DatumGetestet(strDatum As String) As Variant
'Funktion erkennt A L L E
'fehlerhaften Datumsangaben
'Auch Überprüfung auf Monat 28, 30 oder 31 Tage
'(bei Februar auf Schaltjahre)
'nur Ziffern angaben zulässig (oder die Formate erweitern)
'Function gibt bei Fehler False (Boolean)
'und bei gültigem Datum das Datum (Date) zurück
DatumGetestet = False
If IsDate(strDatum) Then
Select Case Trim(strDatum)
Case Format(CDate(strDatum), "d/m/yy"), _
Format(CDate(strDatum), "d/m/yyyy"), _
Format(CDate(strDatum), "d/mm/yy"), _
Format(CDate(strDatum), "d/mm/yyyy"), _
Format(CDate(strDatum), "dd/m/yy"), _
Format(CDate(strDatum), "dd/m/yyyy"), _
Format(CDate(strDatum), "dd/mm/yy"), _
Format(CDate(strDatum), "dd/mm/yyyy")
DatumGetestet = CDate(strDatum)
End Select
End If
End Function