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

Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
- - Dernière réponse :  galactus13 - 2 mars 2019 à 03:39
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

Afficher la suite 
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 !
frezz13
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
cs_salmen
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é.
cs_dagdoug
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 !!
Sirocooo
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()
cs_akrame
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
Neo.balastik
Messages postés
797
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
4 -
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