Indiquer s' il s' agit d' un chiffre ou pas [Résolu]

Messages postés
22
Date d'inscription
mercredi 5 mai 2004
Dernière intervention
26 novembre 2005
- - Dernière réponse : SpoS
Messages postés
22
Date d'inscription
mercredi 5 mai 2004
Dernière intervention
26 novembre 2005
- 21 nov. 2005 à 22:01
Bonjour à tous,



Voila en essayant de creer un peti programme je me heurte a un "petit" obstacle, je voudrai en gros encrit en ligne de code :



Si A n' est pas un nombre alors

ou

Si A est une lettre alors



Aficher un message box etc...



Si vopus pouviez m' eclairer sur ce point :)



Merci
Afficher la suite 

14 réponses

Meilleure réponse
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
3
Merci
if (keyascii < 48 or keyascii > 57) and keyascii <> 45 then
keyascii =0
beep
endif

45 étant la valeur ascii du caractère "-".

On peut aller comme ça plus loin encore. Si c'est pour faire une calculatrice, je te conseille de voir les nombreuses sources traitant de ce sujet sur le site. Tu progresserais encore plus vite.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
3
Merci
bon pour la TextBox numérique c'est râté.

je rajouterais:

un seul signe "-" possible et toujours au début.







Private Sub Text1_KeyPress(KeyAscii As Integer)


Select Case KeyAscii


Case 45:


If Text1.SelStart > 0 Or InStr(Text1.Text, "-") > 0 Then


KeyAscii = 0


End If


Case 8, 48 To 57:


Case Else: KeyAscii = 0


End Select


End Sub





Daniel

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Messages postés
520
Date d'inscription
vendredi 30 juillet 2004
Dernière intervention
3 mars 2008
0
Merci
dim ma_chaine as string
ma_chaine = inputbox("Veuillez saisir qqchose")
if isnumeric(ma_chaine) then
msgbox("C un numérique")
else
msgbox("C pas un numérique")
end if

Rollerman
Messages postés
22
Date d'inscription
mercredi 5 mai 2004
Dernière intervention
26 novembre 2005
0
Merci
A la place de de "isnumeric", il n' existe pas une autre fonction pour dire en gros, isword

pour indiquer



Si A est un lettre alors

Message box ...
Messages postés
520
Date d'inscription
vendredi 30 juillet 2004
Dernière intervention
3 mars 2008
0
Merci
non lol

mais si tu sais que ce n'est pas un numérique..... c'est que c'est un chiffre :)



variante:

_____________________________________________

m ma_chaine as string

ma_chaine = inputbox("Veuillez saisir qqchose")

if not isnumeric(ma_chaine) then

msgbox("C pas un numérique")

else

msgbox("C un numérique")

end if
______________________________________________


Rollerman
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
Dim car As String



' il y a toujours le Select Case

car = "A"

Select Case car

Case 65 To 90: MsgBox "Lettre Majuscule"

Case 97 To 122: MsgBox "Lettre Minuscule"

Case 48 To 57: MsgBox "Chiffre"

Case Else: MsgBox "Autres"

End Select



' ou si tu préfères

car = "A"

If car Like "[A-Za-z]" Then MsgBox "c'est une lettre"

car = "9"

If car Like "[0-9]" Then MsgBox "c'est un chiffre"













Daniel
Messages postés
22
Date d'inscription
mercredi 5 mai 2004
Dernière intervention
26 novembre 2005
0
Merci
Merci de votre aide mais je n' arrive pas a adapter cela pour mon logiciel.



Il s' agit en fait d' une petite calculatrice évolué (pour cacluler
calculer les racine des trinome de 2nd degrés), et lorsque l'
utilisateur rentre un lettre à la place d' un chiffre ( ce qui ne
devrai pas ariver vu qu' il s'agit d' une calculatrice) VB m' affiche
un message d' erreur.



Les trois textbox ou l' on peut écrire un nombre sont



A = val(Text1.text)

B = val(Text2.text)

C = val(Text3.text)



- Serai t' il possible par exemple d' interdire l' écriture des lettre ou autre chose que les chiffre ?

- Ou afficher lorsque l' utilisateur n' indique
pas de nombre un message box "Veuillez saisir un chiffre"


Merci :)
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
0
Merci
Salut, moi j'aime bien les soluces proposées par Daniel. Au cas où tu ne connaîtrais pas les valeurs ascii des caractères, tu peux coder aussi, partant de ta question de depart qui supposait que A ne contient qu'UN seul caractère :

Select Case A
Case "A" To "Z", "a" To "z"
MsgBox "c'est une lettre"
Case "0" To "9"
MsgBox "c'est un chiffre"
Case Else
MsgBox "autre"
End Select


'Ou, si tu veux détailler
Select Case A
Case "A" To "Z"
MsgBox "c'est une lettre majuscule"
Case "a" To "z"
MsgBox "c'est une lettre minuscule"
Case "0" To "9"
MsgBox "c'est un chiffre"
Case Else
MsgBox "autre"
End Select

Si A contient plus d'UN caractère, il faut procéder autrement.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
0
Merci
Oups, pas vu ton dernier post, dans ce cas, tu mets ce code dans l'évènement keypress de tes textboxes :

if keyascii < 48 or keyascii > 57 then
keyascii =0
beep
endif

De cette façon, on ne peut saisir que des chiffres avec un tit bip signalant l'erreur.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
31 mars 2015
0
Merci
si c'est une moquerie, je corrige:





Select Case Asc(car)






mais apparemment , c'est pas un seul caractères.


dans ce cas faudrait savoir si faut accepter le point décimal ou pas.

pour que des chiffres faire une TextBox numérique, ou solution de CanisLupus.

sinon voir les nombreuses sources qui parlent de ce sujet


Daniel
Messages postés
3758
Date d'inscription
mardi 23 septembre 2003
Dernière intervention
13 mars 2006
0
Merci
Non, Daniel, ce n'est pas une moquerie. Je t'ai même fait confiance et ai carrément zappé ce coup-là. Merci d'avoir corrigé de toi-même.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
22
Date d'inscription
mercredi 5 mai 2004
Dernière intervention
26 novembre 2005
0
Merci
Merci de votre aide à tous,



Canis Lupus ton truc marche parfaitement,



if keyascii < 48 or keyascii > 57 then

keyascii =0

beep

endif



Juste une petit truc, Je voudrai pouvoir aussi écrire le signe - pour
les calculs, comment c' est possible de le rajouter a partir de la même
idée.



Sinon j' aurai une autre solution, c' est de grisé le bouton Calculer
tant que les valeur comprise dans A, B et C ne sont pas des nombres (
signe - comprit )



Je comprend que mes questions vous paraisse un peu "?!?" mais je debute
dans le monde de Vb ( et je n' ai luq encore que la moitié de mon livre
)



Merci :)
Messages postés
22
Date d'inscription
mercredi 5 mai 2004
Dernière intervention
26 novembre 2005
0
Merci
Pour Desactivé le bouton false un truc à partir de sa :



If text1.text = KeyAscii < 48 Or KeyAscii > 57 Then

Command1.Enabled = True

Else

Command1.Enabled = False



Mais, sa ne fonctionne pas, ou se situe mon erreur :/
Messages postés
22
Date d'inscription
mercredi 5 mai 2004
Dernière intervention
26 novembre 2005
0
Merci
Merci à vous 3.

J' ai finalement opté pour la réponse de Daniel car elle apporte un
petit plus en ne permettant que de mettre de signe - en avant.



La réponse de CanisLupus marche aussi, d' ailleur en reprenant l' idée
du Beep, j' ai ajouter cette ligne qui permet quand l' utilisateur
entre autre chose qu' une lettre d' emmetre un son Beep.




if (keyascii < 48 or keyascii > 57) and keyascii <> 45 then

Beep

endif



Encore merci :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.