VBS-condition-logique identique-résultat différent

VBS-condition-logique identique-résultat différent - VB/VBA/VBS - Programmation

Marsh Posté le 12-02-2009 à 10:11:08    

Bonjour,
 
Je suis en train de faire un petit script en vbs et je tombe sur un problème étrange.
Je fais un teste de condition, qui me retourne deux résultat différents sur le même test écrit différement (Si A>B (fonctionne mal)différent de si (A-B)>0 (fonctionne)????????)
 
Je vous mets un petit exemple du code (le 1er ne fonctionne pas, le 2ème fonctionne) :  
 
dim tab(2)
resultat = -2
 
do while resultat = -2
  resultat = inputbox("??" )
  if resultat = "" then
     resultat = -1
  else
    if not isnumeric(resultat ) then
       msgbox "not numeric"
       resultat = -2
     else  
       if (resultat > ubound(tab)) then
         msgbox "dehors !" & resultat  
         resultat = -2
       end if
     end if
   end if
   msgbox "RESULTAT : " & resultat  
 
loop
 
Retourne "Dehors" lorsqu'on entre 1 (ce qui n'est pas correct)
 
alors que l'exemple
 
dim tab(2)
resultat = -2
 
do while resultat = -2
  resultat = inputbox("??" )
  if resultat = "" then
     resultat = -1
  else
    if not isnumeric(resultat ) then
       msgbox "not numeric"
       resultat = -2
     else  
       if (resultat - ubound(tab)) > 0  then
         msgbox "dehors !" & resultat  
         resultat = -2
       end if
     end if
   end if
   msgbox "RESULTAT : " & resultat  
 
loop
 
Qui est identique logiquement, fonctionne quand à lui correctement...  
 
 
 
Je sais donc contourner le souci, mais de là à l'expliquer.
 
 
Merci d'avance de votre aide, si vous y comprenez quelque chose.....

Reply

Marsh Posté le 12-02-2009 à 10:11:08   

Reply

Marsh Posté le 12-02-2009 à 11:31:15    

resultat est considéré comme une string donc il compare une string et un nombre dans A > B
 
dans A - B > 0 il convertit tout seul A en int pour faire la soustraction car il ne sait faire de soustraction qu'entre deux nombres


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 12-02-2009 à 15:02:24    

OK, merci pour la réponse :-)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed