Mettre des valeurs de type double dans un inputbox et faire des comparaisons

[Résolu]
Signaler
Messages postés
25
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2008
-
Messages postés
25
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2008
-
salut à tous,
je suis actuellement en stage et je travaille sur vb6.J'ai un inputbox ou je dois mettre des valeurs de type double mais mon pb est avant de changer une valeur il faut faire le texte si:
1°)la valeur n'est pas negative si oui marque un message d'erreur exemple -2
2°)la valeur n'est pas une chaine vide si oui marque un message d'erreur  exemple ""
3°)la valeur n'est pas une chaine de caractere si oui marque un message d'erreur  exemple fhsjhfhfhhff
4°)la valeur n'est pas une chaine de caractere melange avec des chiffres  exemple dhgjhgj5987fg887fbj66
j'ai essaye ce bout de code il me met une erreur pour la chaine vide et aussi pour la chaine de caractere 
 h = InputBox(TreeView1.SelectedItem.Text & "=" & idx(0), "Réglage de paramètre", idx(0))        
        h1 = CDbl(h)     
    If  h1 < 0 Then
          Texte = "Pas de Valeur negative"
           Titre = "c'est pas possible"
           Toto = MsgBox(Texte, vbExclamation + vbYesNoCancel, Titre          
     Else
            stat = Target_obj.SetParam(Index, slide)
    End If   
    If   h1 = "" Then
           Texte = "Vous devez entrer une valeur"
           Titre = "c'est pas possible"
           Toto = MsgBox(Texte, vbExclamation + vbYesNoCancel, Titre)
     Else
            stat = Target_obj.SetParam(Index, slide)
    End If    
  j'attendsvotre aide une bonne explication et un bout de code si possible.Merci à tous et bonne journée

9 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Regarde ces tests :

' On commence les tests ^^
  'si vide on sort : Test 1
   If LenB(h) = 0 Then MsgBox "Aucune saisie !": Exit Sub ' alors vide on sort
  
  'Si chaine de carractère on sort aussi ^^
   If Not IsNumeric(h) Then MsgBox "Saisissez que des numériques !": Exit Sub
 
  ' Si < 0 on sort aussi ^^
   If h < 0 Then MsgBox "Pas de valuers négatives !": Exit Sub

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Ouais....Et c'est quoi l'erreur ?

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Séparateur décimal je pense....utilise REPLACE pour remplacer la virgule par un point

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
25
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2008

je te remercie ca marche mais mon petit souci est que je veux que mettre des valeurs types double
Messages postés
25
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2008

je te remercie ca marche mais mon petit souci est que je veux que mettre des valeurs types double et ca ne marche pas avec car quand je convertis                h1 = CDbl(h)  ca me marque une erreur alors je ne sais pas comment faire ce bout de code est un cas general pour un certain type d'entier....................... merci
Messages postés
25
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2008

il me marque erreur d'excecution '13'  et type incompatible pour les 2 cas
 'si vide on sort : Test 1
 'Si chaine de carractère on sort aussi ^^
A+
Messages postés
25
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2008

Toujours pas la meme erreur et ton replace tu veuxque je le mette à quel niveau à celui de h (ie)   h=replace(h,",",".") c'est à ça que tu pensais.....
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

oui c'est cela pour le replace....tu mets le replace aprés la saisie dans ta textbox...

par contre ne valide pas toutes les réponses à chaque fois que je repond....valide que la réponse qui résoud ton problème ^^

A+
Exploreur

 Linux a un noyau, Windows un pépin
Messages postés
25
Date d'inscription
mardi 4 décembre 2007
Statut
Membre
Dernière intervention
31 juillet 2008

Toujours pas la meme erreur qunad je replace car j'ai un inputbox et je ne veux que lui mettre des valeurs de type double donc je fains un test
1°)pas de valeurs negatives  -2
2°)pas de chaine vide  ""
3°)pas de chaine de caracteres   fgtyjyluiol
4°)pas de chaine et des nombres   zege3r4654dgdgh
A+