TEXTBOX NUMÉRIQUE (LE + SIMPLE) VERSION AMÉLIORÉ AVEC BACKSPACE QUI FONCTIONNE
cs_Nox
Messages postés415Date d'inscriptionmardi 3 avril 2001StatutMembreDernière intervention26 avril 2008
-
6 févr. 2002 à 03:56
imparator_42
Messages postés20Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention17 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.
imparator_42
Messages postés20Date d'inscriptionmardi 14 mars 2006StatutMembreDernière intervention17 octobre 2012 30 mars 2008 à 00:17
Et pour effacer ?
berreqia
Messages postés3Date d'inscriptionvendredi 22 décembre 2006StatutMembreDernière intervention19 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és24Date d'inscriptionmercredi 12 avril 2006StatutMembreDernière intervention26 janvier 2007 29 janv. 2007 à 15:54
Super code,
il m'a boucoups servit
cs_Talere
Messages postés102Date d'inscriptionvendredi 29 mars 2002StatutMembreDernière intervention14 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és35Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 septembre 2004 15 sept. 2004 à 19:41
roswell117 tu est noob
skyzofrenzz
Messages postés35Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 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és368Date d'inscriptiondimanche 24 juin 2001StatutMembreDerniè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és5Date d'inscriptiondimanche 16 février 2003StatutMembreDernière intervention25 mai 2003 19 mai 2003 à 21:11
SUPER!!!! j'avais vraiment besoin d'un vbut de code comme celui ci!
Merci !!!
Dalida
Messages postés6728Date d'inscriptionmardi 14 mai 2002StatutContributeurDernière intervention11 janvier 2016 7 sept. 2002 à 15:23
arretes de GMIr, on l'a vu ton source...
lol
cs_GMI
Messages postés3Date d'inscriptionmercredi 20 décembre 2000StatutMembreDernière intervention19 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és550Date d'inscriptionvendredi 5 janvier 2001StatutMembreDernière intervention23 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és61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 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és61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 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és9Date d'inscriptionmercredi 6 février 2002StatutMembreDernière intervention15 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és192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007 6 févr. 2002 à 15:56
Mais je viens de tester pis ca marche pareil ...
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 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és39Date d'inscriptionmercredi 19 décembre 2001StatutMembreDernière intervention19 juin 2003 6 févr. 2002 à 12:53
c'est une habitude de faire du copier coller ?
roswell117
Messages postés61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 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és550Date d'inscriptionvendredi 5 janvier 2001StatutMembreDernière intervention23 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és61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 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és415Date d'inscriptionmardi 3 avril 2001StatutMembreDernière intervention26 avril 2008 6 févr. 2002 à 03:56
mwais... c simple et efficace... mais c pas du gros code! ;p
30 mars 2008 à 00:17
19 févr. 2008 à 16:32
Private Sub Text7_KeyPress(KeyAscii As Integer)
If (InStr("0123456789-", Chr(KeyAscii)) 0) And (KeyAscii <> 8) Then KeyAscii 0
End Sub
29 janv. 2007 à 15:54
il m'a boucoups servit
21 déc. 2005 à 09:07
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
15 sept. 2004 à 19:41
15 sept. 2004 à 19:18
Allez encore merci
5 oct. 2003 à 16:56
If KeyAscii 8 Then KeyAscii 8 Else: If InStr("0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
19 mai 2003 à 21:11
Merci !!!
7 sept. 2002 à 15:23
lol
20 avril 2002 à 00:21
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.
9 févr. 2002 à 14:55
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+
7 févr. 2002 à 00:56
Mea Culpa
7 févr. 2002 à 00:55
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
6 févr. 2002 à 20:07
De plus, avec cette fonction, la touche "Del" est inactive...dommage
Merci!
6 févr. 2002 à 15:56
6 févr. 2002 à 15:52
6 févr. 2002 à 12:53
6 févr. 2002 à 12:12
Roswell117
6 févr. 2002 à 12:00
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+
6 févr. 2002 à 11:15
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é
6 févr. 2002 à 03:56
7/10