ich benötige wieder einmal eure Hilfe.
Ich habe eine UF bei der die TextBox1 mit dem Wert "Bitte Datum eintragen" gefüllt wird und in TextBox1 wird Text blau markiert.
Wird nun ein falscher Wert eingegeben, soll die Textbox1 wieder mit Wert "Bitte Datum eintragen" gefüllt und Textbox1 markiert werden (z.B. Datumwert nur teilweise oder irgend ein Wert).
Der bisherige Code:
'Anfang alles Textbox1
'gibt bei Wechsel Punkt nach Tag und Monat ein Begrenzung auf 10 Stellen für Datum
<pre>Private Sub TextBox1_Change()
If TextBox1 = "" = True Then Exit Sub
'Anfang Datum . Vorgabe und Begrenzung auf 10 Stellen
If TextBox1.Tag = "1" = True Then Exit Sub
If Len(TextBox1) = 2 Then
If InStr(TextBox1, ".") = 0 Then TextBox1 = TextBox1 & "."
ElseIf Len(TextBox1) = 5 Then
If Len(TextBox1) - Len(Application.Substitute(TextBox1, ".", "")) < 2 Then
TextBox1 = TextBox1 & "."
End If
End If
TextBox1.MaxLength = 10
'Ende Datum . Vorgabe und Begrenzung auf 10 Stellen
End Sub</pre>
'Function wird ausgeführt in Textbox1_BeforeUpdate
Function Check_Datum(Tb As MSForms.TextBox) As Boolean
If IsDate(Tb.Text) Then
Tb.Text = CDate(Tb.Text)
If Tb.Text Like "##.##.####" Then Exit Function
End If
MsgBox "Eingabe nicht korrekt!"
Check_Datum = True 'springt wieder ins Feld
Tb.SelStart = 0
Tb.SelLength = Len(Tb.Text)
End Function</pre>
<pre>Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Cancel = Check_Datum(TextBox1) 'True --> springt wieder ins Feld 'Check_Datum = o.a. Function
End Sub</pre>
'prüft beim Verlassen ob Label5 "Tgb.-Nr. ect." leer ist wenn ja dann wird Textbox1 übersprungen auf Textbox3
<pre>Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox6.SetFocus
End Sub</pre>
'Ende alles Textbox1
Was muss hier bitte geändert werden. Besten Dank.
Gruss
Peter