Viele "Textfelder" mit Datumeingabe beschränken
30.09.2018 22:44:04
Oliver
es ist wahrscheinlich die 1000 Frage nach dem bekannten Problem ein Datum in ein Textfeld zu bekommen. Ich konnte mit den anderen Einträgen aber leider nichts anfangen.
Ich habe eine Userform mit 209 TextBoxen von denen ca. 100 mit einem Datum versehen werden.
Ich habe folgenden Code um eine Datumseingabe zu beschränken/zu vereinfachen:
Private Sub TextBox8_Change()
Dim intLaenge As Integer, strTemp As String
If Len(TextBox8.Value) = 3 And IsNumeric(Mid(TextBox8, 2, 1)) And TextBox8.SelStart = 3 _
Then _
TextBox8.Value = Left(TextBox8, 2) & "." & Mid(TextBox8, 3, 1)
If Len(TextBox8.Value) = 6 And IsNumeric(Mid(TextBox8, 5, 1)) And TextBox8.SelStart = 6 _
Then _
TextBox8.Value = Left(TextBox8, 5) & "." & Mid(TextBox8, 6, 1)
strTemp = TextBox8.Value
For intLaenge = 1 To Len(TextBox8)
If InStr("0123456789.", Mid(TextBox8, intLaenge, 1)) = 0 Then
strTemp = Left(TextBox8, intLaenge - 1) & "#" & Mid(TextBox8, intLaenge + 1)
End If
Next
TextBox8 = Replace(strTemp, "#", "")
End Sub
Zusätzlich beschränke ich das Feld auf 10 Zeichen.
Der Code ist nicht perfekt, weil wenn ich zum Beispiel das Jahr am Ende einer EIngabe aufgrund von einem Eingabefehler lösche, setzt er mir stattdessen einen zweiten Punkt und ich muss alles markieren und löschen und das Datum neu eingeben. Naja wie gesagt, nicht perfekt und ich habe keinen besseren Code.
Hauptproblem ist aber folgendes:
Wie realisiere ich nun dass dieser Code auf alle betreffenden Textboxen angewendet wird, ohne ihn für jede Textbox einzutragen?
PS: Falls der Code verbessert werden kann, immer gerne gesehen.
Vielen Dank
Oliver