ich habe mir aus der ForumArchiv-CD folgenden Beispiel für die Datumseingabe in eine Textbox einer userform herausgesucht und versucht, es etwas zu erweitern - leider ohne Erfolg.
An zwei Punkten scheitere ich immer wieder
a) bei der Überprüfung, ob eine Ziffer eingegeben wurde : If Not Right(tbDatum, 1) Like "[0-9]" Then
b) wenn ein ungültiges Datum eingegeben wurde:
MsgBox "Kein gültiges Datum eingegeben!", vbCritical, "Falsches Datum"
tbDatum = ""
'
' jetzt soll der Cursor wieder in die Textbox gesetzt werden, um korrektes Datum einzugegeben
'mit frmDatum.tbDatum.SetFocus klappt das nicht
s. Makrobefehle
Kann mir jemand helfen und einen Tipp geben, was ich verändern muss?
Besten Dank im Voraus an den hilfreichen VBA-Experten
Peter
' Datumseingabe 01.01.03;1.1.03 oder komlettes Jahr
' Bei zweistelliger Eingabe des Tages und des Monat werden die Punkte automatisch gesetzt
' sie können nur gelöscht durch Markierung des Punktes und der Zahl davor
' Buchstaben werden ausgeschlossen, nur Zahlen und Punkt werden akzepiert
' die Überprüfung ob Datum erfolgt in Private Sub tbDatum_AfterUpdate()
Private Sub tbDatum_Change()
If Not Right(tbDatum, 1) Like "[0-9]" Then
' dann letzte Eingabe löschen, der Cursor soll dann in der Textbox für neue Eingabe stehen
' mit Right(tbDatum, 1).select und selection.Delete funktioniert das nicht
End If
If tbDatum.Tag = "1" = True Then Exit Sub
If Len(tbDatum) = 2 Then
If InStr(tbDatum, ".") = 0 Then tbDatum = tbDatum & "."
ElseIf Len(tbDatum) = 5 Then
If Len(tbDatum) - Len(Application.Substitute(tbDatum, ".", ""))
Private Sub tbDatum_AfterUpdate()
tbDatum.Tag = 1
If Right(tbDatum, 1) = "." Then tbDatum = Mid(tbDatum, 1, Len(tbDatum) - 1)
' Jahreszahl vom aktuellen Jahr ergänzen falls nicht vorhanden
If Len(tbDatum) - Len(Application.Substitute(tbDatum, ".", "")) = 1 Then
tbDatum = tbDatum & "." & Year(Date)
End If
If IsDate(tbDatum.Text) Then
tbDatum = Format(CDate(tbDatum.Value), "dd.mm.yyyy")
Else
MsgBox "Kein gültiges Datum eingegeben!", vbCritical, "Falsches Datum"
tbDatum = ""
'jetzt soll der Cursor wieder in die Textbox gesetzt werden, korrektes Datum einzugegeben
'mit frmDatum.tbDatum.SetFocus klappt das nicht
End If
tbDatum.Tag = ""
End Sub