Hallo an alle !
Ich habe da folgendes Problem :
Ich möchte die Eingabe in einem Textfeld nur auf Zeichen und löschen taste begrenzen
Folgender Code läuft aber ich bekomme die löschen ( Backspace hex: 0x8, Dez: 8 )taste nicht mit eingebaut leider finde ich in den Büchern keine Info dazu und die OLH ich auch keine Hilfe
Private Sub TxtNameSuchen_KeyPress(KeyAscii As Integer)
If Chr(KeyAscii) Like "[a-z A-Z ö ä ü Ö Ä Ü ]" = False Then KeyAscii = 0
End Sub
Habe es auch schon so probiert aber das ByVal KeyAscii As MSForms.ReturnInteger
lässt bei wechseln in die Formularansicht lauter Fehler Meldungen erscheinen
Private Sub TxtNameSuchen_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 65 To 90, 46
Case Else: KeyAscii = 0
End Select
End Sub
Gruß Frank
[Anhang gelöscht durch Administrator]
Hallo,
versuche mal ein anderes Ereignis:
Private Sub TxtNameSuchen_KeyDown(KeyCode As Integer, Shift As Integer)
If Chr(KeyCode) Like "[a-z A-Z ö ä ü Ö Ä Ü ]" = False And KeyCode <> 8 Then KeyCode = 0
End Sub
Harald
Hallo,
das funktioniert auch so mit KeyPress.
If Chr(KeyAscii) Like "[a-z A-Z ö ä ü Ö Ä Ü ]" = False And KeyAscii <> 8 Then KeyAscii = 0
Hallo danke euch beiden für eure Lösung !
Die ich super umsetzen kann in kleineren Formularen die nur 1-3 Felder enthalten wofür ich es ursprünglich gedacht habe
Wenigsten weis ich jetzt wie man so einen Syntax aufbaut
Da ich auf meinen Streifzügen durchs Internet noch was entdeckt habe das ich zum Beispiel für ein
Mitarbeiter Formular das eine menge Felder enthält
Das es dafür auch eine Lösung gibt
Die ich zur Ergänzung auch posten möchte
Ich habe allerdings das mit dem Tooltip entfernt da es bei mir zu Fehlern führt und die umlaute mit eingebastelt !
Ich hoffe das es anderen hilft was sie hier alles finden !
Gruß Frank
Quelle:
http://www.vbarchiv.net/tipps/tipp_1148-tastatureingabe-fuer-textboxen-einschraenken.html
Option Explicit
Public Enum KeyTyp
NurZahlen = 0
NurText = 1
TextUndZahlen = 2
TextZahlenSonderzeichen = 3
End Enum
Public Function KeyCheck(KeyCode As Integer, TxtBox As TextBox, EingabeTyp As KeyTyp, _
Optional Meldung As Boolean = False) As Integer
Dim KeyStr_L As String
Dim Typ_L As String
Select Case EingabeTyp
Case 0
KeyStr_L = "0123456789"
Typ_L = "Zahlen 0-9"
Case 1
KeyStr_L = "ABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜ" & _
"abcdefghijklmnopqrstuvwxyzßöäü"
Typ_L = "Text A-Z a-z öäü ÖÄÜ"
Case 2
KeyStr_L = "ABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜ" & _
"abcdefghijklmnopqrstuvwxyzßöäü0123456789"
Typ_L = "Text A-Z a-z ö ä ü Ö Ä Ü Zahlen 0-9"
Case 3
KeyStr_L = "ABCDEFGHIJKLMNOPQRSTUVWXYZÖÄÜ" & _
"abcdefghijklmnopqrstuvwxyzßöäü0123456789 :.;,!&%/()=*+-_<>"
Typ_L = "Text A-Z a-z ö ä ü Ö Ä Ü Zahlen 0-9 Sonderzeichen :.;,!&%/()=*+-_<>"
End Select
KeyStr_L = KeyStr_L & Chr(13) & Chr(8)
If InStr(KeyStr_L, Chr(KeyCode)) Then
KeyCheck = KeyCode
Else
KeyCheck = 0
If Meldung = True Then
MsgBox "Diese Taste wurde für die Eingabe " & _
"in diese Textbox gesperrt! Die zulässigen Zeichen sind: " & _
Typ_L, vbExclamation, "Diese Taste ist gesperrt"
End If
End If
End Function
Nur Zahlen zulassen
Private Sub TxtNameSuchen _KeyPress(KeyAscii As Integer)
KeyAscii = KeyCheck(KeyAscii, TxtNameSuchen, NurZahlen)
End Sub
Nur Text A-Z a-z zulassen
Private Sub TxtNameSuchen _KeyPress(KeyAscii As Integer)
KeyAscii = KeyCheck(KeyAscii, TxtNameSuchen, NurText)
End Sub
Nur Text A-Z a-z und Zahlen zulassen
Private Sub TxtNameSuchen_KeyPress(KeyAscii As Integer)
KeyAscii = KeyCheck(KeyAscii, TxtNameSuchen, TextUndZahlen)
End Sub
Text A-Z a-z, Zahlen und in Funktion definierte Sonderzeichen zulassen
Private Sub TxtNameSuchen_KeyPress(KeyAscii As Integer)
KeyAscii = KeyCheck(KeyAscii, TxtNameSuchen, TextZahlenSonderzeichen)
End Sub
Nur Text A-Z a-z zulassen
MIT MELDUNG
Private Sub TxtNameSuchen_KeyPress(KeyAscii As Integer)
KeyAscii = KeyCheck(KeyAscii, TxtNameSuchen, NurText, TRUE)
End Sub