nach langer Zeit darf ich mich mal wieder mit VBA beschäftigen und krame mein altes Wissen zusammen - auch mit Hilfe dieses tollen Forums :-)
Leider komme ich an einer Stelle z.Zt. auch nach intensiver Recherche nicht weiter.
Ich habe in einer Userform eine Textbox erstellt. Diese soll die Beschränkung auf eine Eingabe im Datumsformat dd.mm.yyyy erhalten (von irgendwelchen Konvertierungen wilder Nutzereingaben sehe ich mal ab, das sollen die einfach richtig eintragen nach Aufforderung). Zur Prüfung habe ich eine textbox_exit Prozedur eingefügt. Diese läuft auch soweit ganz gut, außer dass bei Fehleingabe die Message Box immer zweimal erscheint. Mit cancel=false könnte ich das zwar verhindern, aber dann ist der Fokus nicht mehr auf der Textbox und es kann munter weiter falsch eingegeben werden.
Kann mir irgendjemand einen Hinweis geben, was ich ändern sollte? Gibt es eine geeignetere Prozedur als _exit?
Hier ist der Code
'Prüfung Format Projektbeginn
Private Sub BeginnTextBox_Exit(ByVal cancel As MSForms.ReturnBoolean)
Dim antwort3 As Integer
If BeginnTextBox.Text = "" Then
Exit Sub
End If
If Not IsDate(BeginnTextBox.Text) Or _
InStr(BeginnTextBox.Text, ":") Or _
BeginnTextBox.TextLength 10 Then
cancel = True
antwort3 = MsgBox("Projektbeginn bitte im" & vbNewLine & "Format TT.MM.JJJJ angeben.", _
vbOKCancel)
If antwort3 = vbOK Then
BeginnTextBox.SetFocus
BeginnTextBox.SelStart = 0
BeginnTextBox.SelLength = BeginnTextBox.TextLength
Else
BeginnTextBox.Text = ""
End If
'Cancel = False
End If
End Sub
Vielen Dank vorab!