TEXTBOX NUMÉRIQUE (LE + SIMPLE) VERSION AMÉLIORÉ AVEC BACKSPACE QUI FONCTIONNE

cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008 - 6 févr. 2002 à 03:56
imparator_42 Messages postés 20 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 17 octobre 2012 - 30 mars 2008 à 00:17
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/2555-textbox-numerique-le-simple-version-ameliore-avec-backspace-qui-fonctionne

imparator_42 Messages postés 20 Date d'inscription mardi 14 mars 2006 Statut Membre Dernière intervention 17 octobre 2012
30 mars 2008 à 00:17
Et pour effacer ?
berreqia Messages postés 3 Date d'inscription vendredi 22 décembre 2006 Statut Membre Dernière intervention 19 février 2008
19 févr. 2008 à 16:32
Une correction du code de ROSEWLL mais si c'est un peu trop tard lol :)

Private Sub Text7_KeyPress(KeyAscii As Integer)
If (InStr("0123456789-", Chr(KeyAscii)) 0) And (KeyAscii <> 8) Then KeyAscii 0
End Sub
Le Prince Dragon Messages postés 24 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 26 janvier 2007
29 janv. 2007 à 15:54
Super code,
il m'a boucoups servit
cs_Talere Messages postés 102 Date d'inscription vendredi 29 mars 2002 Statut Membre Dernière intervention 14 février 2013
21 déc. 2005 à 09:07
Je peux te suggérer cette solution qui, en plus permet de gérer le séparateur décimale :

Private Sub Limite_CMJ_BDL_KeyPress(KeyAscii As Integer)
separateur = Mid$(Format$(0, "0.0"), 2, 1)
If Chr(KeyAscii) "." And separateur <> "." Then KeyAscii Asc(separateur)
If Chr(KeyAscii) "," And separateur <> "," Then KeyAscii Asc(separateur)
'le point par une virgule
If KeyAscii = 8 Then 'Regarde si appuyer sur BACKSPACE
KeyAscii = 8 ' Si oui ... On efface
Else
If InStr("0123456789.,", Chr(KeyAscii)) = 0 Then 'contrôle de saisie
KeyAscii = 0 'caractère incorect, donc il ne s'ecrit pas
End If
End If
End Sub
skyzofrenzz Messages postés 35 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 septembre 2004
15 sept. 2004 à 19:41
roswell117 tu est noob
skyzofrenzz Messages postés 35 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 15 septembre 2004
15 sept. 2004 à 19:18
Exelent !!! 10/10 ca marche tres bien !!! moi c la virgule que je remplace par un point LOL....

Allez encore merci
ICIoBRa Messages postés 368 Date d'inscription dimanche 24 juin 2001 Statut Membre Dernière intervention 7 décembre 2015
5 oct. 2003 à 16:56
Private Sub txtCar_KeyPress(KeyAscii As Integer)
If KeyAscii 8 Then KeyAscii 8 Else: If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
cs_Keman Messages postés 5 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 25 mai 2003
19 mai 2003 à 21:11
SUPER!!!! j'avais vraiment besoin d'un vbut de code comme celui ci!

Merci !!!
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
7 sept. 2002 à 15:23
arretes de GMIr, on l'a vu ton source...
lol
cs_GMI Messages postés 3 Date d'inscription mercredi 20 décembre 2000 Statut Membre Dernière intervention 19 avril 2002
20 avril 2002 à 00:21
Je vous invite à regarder l'article http://www.vbfrance.com/article.asp?Val=640
En effet :
- On peut limiter la saisie à un champs numérique
- On détecte le séparateur décimal windows ( ce n'est pas tjs la virgule !!)
- On peut limiter la saisie à un ensemble de caractère ( par ex "advfgGFR")
- Ecris dans un module, le code peur servir dans tous le projet
- Il n' y a pas d'API, pour ceux qui ne les aiment pas.
cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006
9 févr. 2002 à 14:55
arkko

a ok je savais pas que c'etait facultatif le 1 mais y a kan meme un truc qui me
dérange c'est que meme si c'etait facultatif il faudrait une virgule avant la liste "123
comme ca

if instr(,"123 etc...

enfin si ca marche c'est le principal
a+
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005
7 févr. 2002 à 00:56
heu, dsl, ds le message faut lire "Keyascii<>9" et non pas "Keyascii=9"

Mea Culpa
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005
7 févr. 2002 à 00:55
Pr remplacer "." par une virgule et activer le "Del", tu peut faire :

if Chr(Keyascii)="." then Keyascii=Asc(",")
If InStr("0123456789.,", Chr(Keyascii))=0 Or Keyascii=9 then ' 9 est le code pr 'Del'
Keyascii=0
End If
jbosss Messages postés 9 Date d'inscription mercredi 6 février 2002 Statut Membre Dernière intervention 15 février 2003
6 févr. 2002 à 20:07
comment pourrait-on faire pour que, si l'utilisateur tape "." (un point), le prog le remplace par une virgule ?
De plus, avec cette fonction, la touche "Del" est inactive...dommage
Merci!
cs_Arkko Messages postés 192 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 31 janvier 2007
6 févr. 2002 à 15:56
Mais je viens de tester pis ca marche pareil ...
cs_Arkko Messages postés 192 Date d'inscription mercredi 26 décembre 2001 Statut Membre Dernière intervention 31 janvier 2007
6 févr. 2002 à 15:52
Désolé j'Avais oublier de corriger cela ... j'ai fait un copiercoller d'une partie de mon prog qui se sert des index ... désolé je vais le corriger ce soir
thrakkazz2000 Messages postés 39 Date d'inscription mercredi 19 décembre 2001 Statut Membre Dernière intervention 19 juin 2003
6 févr. 2002 à 12:53
c'est une habitude de faire du copier coller ?
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005
6 févr. 2002 à 12:12
Stephane, pr la fonction Instr(), si tu veut commencer du début, tu peut ne rien mettre, le 1 est sous-entendu.

Roswell117
cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006
6 févr. 2002 à 12:00
salut

voila ma correction :

Private Sub text1_keyPress( KeyAscii As Integer)
If InStr(1,"0123456789", Chr$(KeyAscii)) = 0 Then 'contrôle de saisie
KeyAscii = 0 'caractère incorect, donc supression
End If

End Sub

t'as oublié le 1, devant qui définit l'endroit a partir d'où l'ordi va rechercher. A rajouter aussi si l'on veut autoriser les nombres decimals, un point (.) et une virgule (,) comme ca :

Private Sub text1_keyPress( KeyAscii As Integer)
If InStr(1,"0123456789.,", Chr$(KeyAscii)) = 0 Then 'contrôle de saisie
KeyAscii = 0 'caractère incorect, donc supression
End If

End Sub

voila

a+
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 novembre 2005
6 févr. 2002 à 11:15
c pas du gros code et en plus c FAUX
c un code k'a pas été testé apparemment car la déclaration est fausse, pr keyPress, il faut ke KeyAscii, t'as pas besoin index sinon, ca fait une erreur dès le début du programme

Désolé
cs_Nox Messages postés 415 Date d'inscription mardi 3 avril 2001 Statut Membre Dernière intervention 26 avril 2008
6 févr. 2002 à 03:56
mwais... c simple et efficace... mais c pas du gros code! ;p

7/10
Rejoignez-nous