[VBA] Problème de boucle

modjibe Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   -  
 Tunisien -
Bonjour,

While a > b Or Not (Left(cellExcel.Value, 5) = "Total")
        i = i + 1
        Set cellExcel = wsExcel.Range("A" & CStr(i))
            While cellExcel.Value = 0
                i = i + 1
                Set cellExcel = wsExcel.Range("A" & CStr(i))
            Wend
        a = CInt(Left(num, 4))
        b = CInt(Left(cellExcel.Value, 4))
        MsgBox ("a:" & a)
        MsgBox ("b:" & b)
Wend


La boucle ne s'arrête pas et pourtant après vérification il y'a bien un moment ou "a" est supérieur à "b"

Grmbl

4 réponses

Tunisien
 
je ne comprends pas bien ce que cette boucle fait.... mais d'apres ce que tu viens de dire a la fin de ton message:"....et pourtant après vérification il y'a bien un moment ou "a" est supérieur à "b" "
je vois que ta condition d'arret est que "a" devient superieur a "b"....c ca?
si c le cas ,tu fais une erreur de raisonnement puisque si a>b la boucle va continuer a tourner puisque tu a ecris en haut "While a > b ..."

reverifis ton raisonnement, peut etre tu doit changer ta condition par "While a < b "....

si ce n'est pas le cas et tu veus plus d'aide explique nous un peu ce que la boucle fais....
0
modjibe Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   3
 
Ah mais oui ! aveugle que je suis...
merci

Et pour info c'est une boucle en gros qui me sert à parcourir les lignes d'une feuillle excel
0
modjibe Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   3
 
Non en fait mon raisonnement est bon a est plus grand au départ et devient plus petit que b et je veux qu'à ce moment là la boucle s'arrête. La fonction fait des trucs mais ça ne change rien.
0
modjibe Messages postés 45 Date d'inscription   Statut Membre Dernière intervention   3
 
a priori ce serait la partie du code

Or Not (Left(cellExcel.Value, 5) = "Total")


Il faut mettre un And et pas un Or, je ne comprends pas pourquoi
0
Tunisien
 
si tu met un And la boucle arrete de tourner dé que l'une des condition n'est pas satisfaite par contre si tu met Or les 2 conditions doivent etre fausses pour que la boucle s'arrete
0