Interdire caracteres speciaux et chiffres dans textbox

caunney Messages postés 6 Date d'inscription dimanche 8 février 2009 Statut Membre Dernière intervention 28 août 2010 - 28 août 2010 à 10:28
Chouchensb Messages postés 64 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 2 septembre 2010 - 8 nov. 2010 à 20:08
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

Chouchensb Messages postés 64 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 2 septembre 2010
28 août 2010 à 18:42
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 (?)
0
Chouchensb Messages postés 64 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 2 septembre 2010
28 août 2010 à 18:45
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
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
6 nov. 2010 à 17:43
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
0
spamito Messages postés 183 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 30 mars 2013
6 nov. 2010 à 17:52
Pardon, tu voulais que des caractère :

If (Char.IsNumber(e.KeyChar)) Then
  e.Handled = True
End If
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Chouchensb Messages postés 64 Date d'inscription jeudi 3 mars 2005 Statut Membre Dernière intervention 2 septembre 2010
8 nov. 2010 à 20:08
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
0
Rejoignez-nous