cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 27 nov. 2008 à 17:50
SaluE
aussi
Comme son nom l'indique, Text1.Text est ... du texte.
Une comparaison directe entre un texte et un chiffre peut quelque fois révéler des surprises.
La prochaine fois, dit le, ça augmentera tes chances d'avoir de l'aide.
Ton problème est l'ordre des tests : Avant de vérifier que la valeur est bien comprise entre 0 et 20, assure toi que la valeur est bien reconnue comme un chiffre
--> Mets le IsNumeric avant le test d'intervale.
Car, si tu compares un texte avec un chiffre, tu obtiens une erreur de type incompatible, c'est normal.
Le problème, c'est que la virgule ou le point (je ne sais plus) n'est pas reconnu comme une vraie virgule à cause du fait que les français et les anglais n'utilisent pas le même symbole.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 27 nov. 2008 à 17:53
Bonjour,
1) Petite question pour les experts n'est pas un titre explicite (évite ce genre de titre)
2) Ta question est très loin d'être une question "pour experts" !!!
3) "méme mon prof de VB na pas trouver la solution" ===>> change très vite de prof, car c'est du niveau débutant
4) tu ne nous parles ni de de que tu permets ou non la saisie de nombres décimaux, ni (si nombres décimaux permis) du séparateur utilisé !!!
Voilà un bout de code uiltra-simple aui permet la saisie, quel que soit ce séparateur :
Private Sub Command1_Click()
If Not IsNumeric(Replace(Text1.Text, ".", ",")) Then
MsgBox "ce n'est pas un nombre valable)"
ElseIf Val(Text1.Text) >= 0 And Val(Text1.Text) <= 20 Then
MsgBox "bon"
Else
MsgBox "nombre valable mais non compris entre 0 et 20"
End If
End Sub
jmenfous
Messages postés117Date d'inscriptionmardi 21 janvier 2003StatutMembreDernière intervention 2 juillet 20091 27 nov. 2008 à 17:47
Il serrait peut être un peu plus propre de tester que tu as bine affaire à une valeur numérique...
Avec un petit IsNueric au début et non pas à la fin par exemple et une seule convertion:
If Not IsNumeric(Text1.Text) Then
MsgBox("wrong")
ElseIf (d >= 0) And (d <= 20) Then
MsgBox("good")
Else
MsgBox("wrong")
End If
jihednond
Messages postés143Date d'inscriptionjeudi 27 mars 2008StatutMembreDernière intervention 3 septembre 20111 28 nov. 2008 à 08:33
@§§§salue§§§@
merci pour tout vos réponses
[auteur/LOULOU69/38668.aspx loulou69]
[auteur/JMENFOUS/38179.aspx jmenfous ]
[auteur/JACK/2204.aspx jack] [auteur/CASY/333139.aspx casy]
[auteur/JMF0/1519380.aspx jmf0]
c'est résolu par[auteur/JMENFOUS/38179.aspx jmenfous][auteur/JMENFOUS/38179.aspx ] et [auteur/JMF0/1519380.aspx jmf0] qui proposé un script pour annuler la valeur double " truc de malin" merci
[auteur/CASY/333139.aspx casy] le problème est du au manque de formation ou d'enseigner or spécialité car mon prof c'est un spécialiste java et c++ --->VB