ich habe in meinen Userforms viele Textfelder, wo die Auswertung immer identische ist (wie in diesem Beispiel "Datum", dieser Code steht in manchen Userforms bis zu 10 mal (nur halt für unterschiedliche Textfelder)
Da das nur den Code unnötig lang und unübersichtlich macht, möchte ich den Code für solche Textfelder in einem eigenen Modul sammeln und diese dann immer nur abrufen (z.B. über: "Call Modul1.Datum_KeyPress(?)")
Leider fehlt mir die Idee wie dieses Funktionierten könnte.
Kann mir da Bitte jemand Helfen? Danke :)
Private Sub txtDatum_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If txtDatum = "" Then Exit Sub
On Error Resume Next
txtDatum = Format(txtDatum, "DD.MM.YYYY")
If Not IsDate(txtDatum) Then
txtDatum = ""
Cancel = True
MsgBox ("Bitte geben sie ein gültiges Datum ein")
End If
End Sub
Private Sub txtDatum_Change()
If Len(txtDatum) = 2 Or Len(txtDatum) = 5 Then txtDatum = txtDatum & "."
End Sub
Private Sub txtDatum_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 And txtDatum = "" Then txtDatum = Format(Date, "DD.MM.YYYY")
End Sub
Private Sub txtDatum_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case Len(txtDatum.Text)
Case 0, 1, 3, 4, 6, 7, 8, 9
If Not Chr(KeyAscii) Like "#" Then KeyAscii = 0
Case 2, 5
KeyAscii = 46
Case Else
KeyAscii = 0
End Select
End Sub