AW: nur bestimmte zahlen Buchstaben in Textbox zulasse
11.02.2019 07:49:59
Nepumuk
Hallo Dirk,
so verständlich?
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case TextBox1.TextLength
'Wenn 0, 4, 5 oder 9 Zeichen in der Textbox sind dann kommt ein Buchstabe
Case 0, 4, 5, 9
'füge dem vorhandenen Text in der Box den Buchstaben an
'UCase$ macht aus kleinen Buchstaben große
TextBox1.Text = TextBox1.Text & UCase$(IsLetter(KeyAscii.Value))
'Wenn 1, 2, 6, 7,10 oder 11 Zeichen in der Textbox sind dann kommt eine Zahl
Case 1, 2, 6, 7, 10, 11
'füge dem vorhandenen Text in der Box die Zahl an
TextBox1.Text = TextBox1.Text & IsNumber(KeyAscii.Value)
End Select
'Wenn 3 oder 8 Zeichen in der Textbox sind wird ein - eingefügt
If TextBox1.TextLength = 3 Or TextBox1.TextLength = 8 Then TextBox1.Text = TextBox1.Text & "-"
'Setze die Eingabe auf 0 damit das Zeichen nicht eingefügt wird
KeyAscii = 0
End Sub
Private Function IsNumber(ByVal pvlngKey As Long) As String
Select Case pvlngKey
'die Ascii-Zeichen 48 bis 57 sind die Zahlen 0 bis 9
Case 48 To 57
'die Funktion gibt die eingegebene Zahl zurück
IsNumber = Chr$(pvlngKey)
Case Else
'bei allen anderen Zeichen wird ein leeerer String zurückgegeben
IsNumber = vbNullString
End Select
End Function
Private Function IsLetter(ByVal pvlngKey As Long) As String
Select Case pvlngKey
'die Zahlen stehen für die Zeichen A-Z a-z ÄÖÜ äöü ß
Case 65 To 90, 97 To 122, 196, 214, 220, 223, 228, 246, 252
'die Funktion gibt den eingegebenen Buchstaben zurück
IsLetter = Chr$(pvlngKey)
Case Else
'bei allen anderen Zeichen wird ein leeerer String zurückgegeben
IsLetter = vbNullString
End Select
End Function
Wenn nicht, dann stell bitte eine konkrete Frage zu einzelnen Zeilen.
Gruß
Nepumuk