Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Eingabe auf Zeichen und tasten beschränken

Begonnen von Frank77, November 09, 2011, 11:48:40

⏪ vorheriges - nächstes ⏩

Frank77

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]
Selbstständig = Selbst und Ständig

bahasu

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
Servus

MzKlMu

Hallo,
das funktioniert auch so mit KeyPress.

If Chr(KeyAscii) Like "[a-z A-Z ö ä ü Ö Ä Ü ]" = False And KeyAscii <> 8 Then KeyAscii = 0
Gruß Klaus

Frank77

#3
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

Selbstständig = Selbst und Ständig