Problème avec la boucle while sur vba
Résolu/Fermé
buffalo31
Messages postés
24
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
4 janvier 2013
-
20 avril 2009 à 09:29
buffalo31 Messages postés 24 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 4 janvier 2013 - 20 avril 2009 à 11:46
buffalo31 Messages postés 24 Date d'inscription vendredi 17 avril 2009 Statut Membre Dernière intervention 4 janvier 2013 - 20 avril 2009 à 11:46
3 réponses
Bonjour
le while de VBA gère parfaitement un "et" entre deux conditions, je pense plutôt que c'est toi as un petit problème pour exprimer ce que tu veux ;)
Peux-tu donner quelques exemples (avec des valeurs) de cas où la boucle doit continuer et d'autres où elle doit s'arrêter ? Tu te rendras probablement compte toi-même de ton erreur.
le while de VBA gère parfaitement un "et" entre deux conditions, je pense plutôt que c'est toi as un petit problème pour exprimer ce que tu veux ;)
Peux-tu donner quelques exemples (avec des valeurs) de cas où la boucle doit continuer et d'autres où elle doit s'arrêter ? Tu te rendras probablement compte toi-même de ton erreur.
tu veux trouver Worksheets("DataSheet") .Cells(i, 1) = "B747" et Worksheets("DataSheet") .Cells(i, 2) = "PW4000"
Alors il faut boucler tant que Worksheets("DataSheet") .Cells(i, 1) <> "B747" OR Worksheets("DataSheet") .Cells(i, 2) <> "PW4000"
Alors il faut boucler tant que Worksheets("DataSheet") .Cells(i, 1) <> "B747" OR Worksheets("DataSheet") .Cells(i, 2) <> "PW4000"
buffalo31
Messages postés
24
Date d'inscription
vendredi 17 avril 2009
Statut
Membre
Dernière intervention
4 janvier 2013
20 avril 2009 à 11:46
20 avril 2009 à 11:46
Super ça marche, je me plantais au niveau de la négation dans mes opérateurs logiques lol! un peu de retour dans la logique en math me ferait pas de mal.
Encore une fois merci merci et à bientôt
Encore une fois merci merci et à bientôt
20 avril 2009 à 10:41
While ((Worksheets("DataSheet").Cells(i, 1).Value <> ac) And (Worksheets("DataSheet").Cells(i, 2).Value <> eng ))
mais sinon il a raison pour les opérateurs logiques en VBA voici le cours
https://www.commentcamarche.net/contents/1188-vbscript-les-operateurs
20 avril 2009 à 11:27
Dans Worksheets("DataSheet") .Cells(i, 1) j'ai des avions et dans Worksheets("DataSheet") .Cells(i, 2) j'ai des moteurs.
Je rentre dans une feuille qui s'appelle Worksheets("Interface") un avion (ac) et un moteur (eng) respectivement "B747" et "PW4000"
L'idée c'est de récupérer la ligne i de Worksheets("DataSheet") où Worksheets("DataSheet") .Cells(i, 1) = "B747" et Worksheets("DataSheet") .Cells(i, 2) = "PW4000" pour faire d'autres traitements.
Qd je rentre le moteur qui correspond au bon avion, ya pas de pb
Mais qd je rentre un moteur qui ne correspond pas à l'avion, je m'attends à ce qu'il ne trouve rien, à la limite je mets une conditions pour qu'il sorte de boucle. Mais à ma grande surprise, il récupère la ligne i de la première condition qui est vérifiée.
Donc en gros les deux condtions paraissent dissociées, ce que je ne comprends pas.