Interdire caracteres speciaux et chiffres dans textbox

Signaler
Messages postés
6
Date d'inscription
dimanche 8 février 2009
Statut
Membre
Dernière intervention
28 août 2010
-
Messages postés
64
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
2 septembre 2010
-
Slt! je suis un debutant en programmation VB 2010. Je suis en train de concevoir un formulaire dans lequel je veux qu'on ne puisse pas saisir des chiffres ou des caracteres speciaux dans les textbox. Le textbox ne doit contenir que du text. Comment faire?
Merci

5 réponses

Messages postés
64
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
2 septembre 2010
1
A chaque fois que ton texte change, tu peux vérifier le texte caractère par caractère et supprimer ceux qui ne correspondent pas à une liste donnée. Par exemple, si tu ne veux que des caractères parmis "abcdefghijiklmnopqrstuvwxyz", tu pourrais écrire:

Private Sub Textbox_Change()

    For i = 1 To Len(txtTiming1.Text)
        If InStr(1, "abcdefghijiklmnopqrstuvwxyz", Mid(txtTiming1.Text, i, 1)) Then
        Else
            txtTiming1.Text = Mid(txtTiming1.Text, 1, i - 1) & Mid(txtTiming1.Text, i + 1)
        End If
    Next i

End Sub


Je ne sais s'il existe une solution plus courte (?)
Messages postés
64
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
2 septembre 2010
1
Oupsss, excuse moi, j'ai fait un essai avec un de mes programmes existants, je voulais écrire:

Private Sub Textbox_Change()
    
    Dim i As Integer
        
    For i = 1 To Len(Textbox.Text)
        If InStr(1, "abcdefghijiklmnopqrstuvwxyz", Mid(Textbox.Text, i, 1)) Then
        Else
            Textbox.Text = Mid(Textbox.Text, 1, i - 1) & Mid(Textbox.Text, i + 1)
        End If
    Next i

End Sub
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

Je ne peux pas juger le code de Chouchensb car je n'ai pas encore travailler sur VB 2010, mais dans la version que j'ai, son code ne répondra pas à tes besoins, car ceci permettra de saisir une seule lettre pas plus.

Dans un événement KeyPress :

If Not (Char.IsLetter(e.KeyChar)) Then
e.Handled = True
End If
Messages postés
183
Date d'inscription
samedi 24 mars 2007
Statut
Membre
Dernière intervention
30 mars 2013

Pardon, tu voulais que des caractère :

If (Char.IsNumber(e.KeyChar)) Then
  e.Handled = True
End If
Messages postés
64
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
2 septembre 2010
1
Effectivement, il est possible que le code que j'ai fourni ne fonctionne pas sous VB2010, car je l'ai testé uniquement sous VBA sous Excel (je n'ai que ça comme environnement pour développer du code VB...). J'ai oublié de préciser ce point, pensant que les codes seraient assez "génériques" pour les deux environnements. Je me suis peut-être avancé un peu vite... Désolé si cela a prêté à confusion, ce n'était pas mon intention