PERMETTRE DE SAISIR DANS UN TEXTBOX QUE DES CARACTÈRE SPÉCIFIÉ .

Signaler
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
-
 galactus13 -
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23559-permettre-de-saisir-dans-un-textbox-que-des-caractere-specifie

Enfin une fonction simple, bien expliqué et qui fonctionne ! lol
J'avais autrefois une soluce qui tenait en deux lignes, mais disparu de ma tête, l'age forcément !
Messages postés
15
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
2 août 2010

Bonjour, Pour ma part j'utilise le code suivant avec les commentaires:

Private Sub TextRXamat_KeyPress(KeyAscii As Integer)
Dim chaine
chaine = "0123456789" 'ou d'autre caracteres
If InStr(1, chaine, Chr(KeyAscii)) 0 And Not KeyAscii 8 Then
'KeyAscii = 8 est la touche Del
'On bloque ce qui n'est pas compris dans la variable chaine sauf
'la touche Del
MsgBox ("Erreur : chiffre uniquement"), vbExclamation
KeyAscii = 0 'On assign un KeyAscii vide à la text box
Ma_box.text ="" 'vide la box
End If
End sub
Messages postés
3
Date d'inscription
mercredi 31 décembre 2003
Statut
Membre
Dernière intervention
17 juillet 2009

tous ça est une idée mais moi je préfére cette méthode :

Private Sub Text1_KeyPress(KeyAscii As Integer)

Dim allowedKeys As String
allowedKeys = "0123456789-,." & Chr(8)
If InStr(allowedKeys, Chr(KeyAscii)) 0 Then KeyAscii 0
End Sub

cette source consiste à rechercher le caractère entré, dans une chaîne contenant tous les caractères autorisés. Si ce caractère n'est pas dans la chaîne, rien n'est affiché.
Messages postés
5
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
28 mars 2006

et si on fait un copier-coller de caractères interdits dans le TEXTBOX ca marche pas !!
Messages postés
412
Date d'inscription
mercredi 19 décembre 2001
Statut
Membre
Dernière intervention
7 avril 2008
1
On ne dit pas "on fé" mais "On fait"
Tu peux remplacer "goto fin" par "exit for"
Plutôt d'utiliser une boucle For Next, tu peux essayer d'utiliser la
fonction InString()
Messages postés
18
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
9 janvier 2006

Je coirs que comme ca c mieu :D
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
5
Oulala que c'est compliqué ;O) Et l'utilisation d'un Goto !!! Faut oublier cela.

Voici plus simple un utilisant la fonction IsNumeric:

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 8 Then
KeyAscii = 8
ElseIf IsNumeric(Chr(KeyAscii)) = False Then
KeyAscii = 0
End If

End Sub

Courage