Itération qui ne s’arrête pas
Résolu/Fermé
ID_Fabio
Messages postés
3
Date d'inscription
lundi 11 février 2019
Statut
Membre
Dernière intervention
12 février 2019
-
Modifié le 11 févr. 2019 à 19:27
ID_Fabio Messages postés 3 Date d'inscription lundi 11 février 2019 Statut Membre Dernière intervention 12 février 2019 - 12 févr. 2019 à 19:11
ID_Fabio Messages postés 3 Date d'inscription lundi 11 février 2019 Statut Membre Dernière intervention 12 février 2019 - 12 févr. 2019 à 19:11
4 réponses
jordane45
Messages postés
38372
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 janvier 2025
4 722
11 févr. 2019 à 16:30
11 févr. 2019 à 16:30
Bonjour,
Juste un if/else ne suffit pas....
Une fois la condition atteinte.. tu dois sortir de la boucle à l'aide d'un
Juste un if/else ne suffit pas....
Une fois la condition atteinte.. tu dois sortir de la boucle à l'aide d'un
Exit For
ID_Fabio
Messages postés
3
Date d'inscription
lundi 11 février 2019
Statut
Membre
Dernière intervention
12 février 2019
11 févr. 2019 à 16:41
11 févr. 2019 à 16:41
Merci pour ta réponse,
Oui je l'ai rajouté entre temps :
Cependant, mon itération continue toujours même après l'ajout.
Je pense qu'il me faut une condition en plus vu que l'itération continue de tourner , en disant que :
quand D65 = G41 le calcul s'arrête , sauf que je ne sais pas comment m'y prendre .
Oui je l'ai rajouté entre temps :
Else
Exit For
End If
Cependant, mon itération continue toujours même après l'ajout.
Je pense qu'il me faut une condition en plus vu que l'itération continue de tourner , en disant que :
quand D65 = G41 le calcul s'arrête , sauf que je ne sais pas comment m'y prendre .
jordane45
Messages postés
38372
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
9 janvier 2025
4 722
11 févr. 2019 à 17:21
11 févr. 2019 à 17:21
là comme ça c'est compliqué de te répondre...
Place un point d'arrêt dans ton code et exécute le en mode pas à pas et regarde les différentes valeurs et si tu passes bien dans ton else...
Place un point d'arrêt dans ton code et exécute le en mode pas à pas et regarde les différentes valeurs et si tu passes bien dans ton else...
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
11 févr. 2019 à 17:55
11 févr. 2019 à 17:55
Bonjour,
1. Il y a pas mal de code inutile.
2. La différence de syntaxe n'aide pas à la compréhension. ex.
3. Je pense toutefois avoir à peu près compris :
- avec le jeu des calculs, je pense que tes pourcentages en D65 ne tombent pas juste (ex. 73,47%)
- donc je pense qu'il faut plutôt utiliser une boucle While et utiliser des inégalités ("<" ou ">" plutôt que différent "<>")
A+
1. Il y a pas mal de code inutile.
2. La différence de syntaxe n'aide pas à la compréhension. ex.
Sheets("Outil de calcul").Range("C66").Value = Cells(li1, col1) * (x) ' Multiplie la cellule C61 (capa bat centralisée par le pas
3. Je pense toutefois avoir à peu près compris :
- avec le jeu des calculs, je pense que tes pourcentages en D65 ne tombent pas juste (ex. 73,47%)
- donc je pense qu'il faut plutôt utiliser une boucle While et utiliser des inégalités ("<" ou ">" plutôt que différent "<>")
A+
ID_Fabio
Messages postés
3
Date d'inscription
lundi 11 février 2019
Statut
Membre
Dernière intervention
12 février 2019
12 févr. 2019 à 19:11
12 févr. 2019 à 19:11
Merci pour ta réponse Zoul67,
J'ai trouvé la réponse !
le problème vient de la déclaration de la variable DoDM : ici un Integer alors qu'il est en fait un Double.
Ce qui fait que le calcul mouline sans s’arrêter puisque pour lui les seuls résultats qui marche sont soit 1 soit 0. Ce qui est faux.
En modifiant Integer par Double ça résout le problème
J'ai trouvé la réponse !
le problème vient de la déclaration de la variable DoDM : ici un Integer alors qu'il est en fait un Double.
Ce qui fait que le calcul mouline sans s’arrêter puisque pour lui les seuls résultats qui marche sont soit 1 soit 0. Ce qui est faux.
En modifiant Integer par Double ça résout le problème