Axeu
Messages postés49Date d'inscriptionjeudi 22 novembre 2012StatutMembreDernière intervention20 juin 2014
-
25 juil. 2011 à 11:38
Axeu
Messages postés49Date d'inscriptionjeudi 22 novembre 2012StatutMembreDernière intervention20 juin 2014
-
25 juil. 2011 à 13:20
Bonjour à tous,
Je developpe un petit logiciel pour mon stage et je ne connais pas encore trop bien la programmation, actuellement j'ai un problème sur un petit programme simple :
En ce moment, il y a une liste de machines de A11 à A26 et TOTAL_GENERAL en A27
En B11 à B27, des valeurs numériques
Si j'ajoute 1 ligne machine, le programme va utiliser les valeurs jusqu'à B27 et la B28 ne sera pas utilisée.
J'ai besoin d'ajouter à mon programme la prise en compte de toutes les valeurs, si je rajoute une ligne de machine, j'ai donc ecris ceci:
For i = 11 To 150
If Cells(i, 1).Value "Total_général" Then n i Else: i = i + 1
Next
MsgBox ("n=" & n) // TEST: Pour vérifier qu'il compte bien
Le soucis c'est que si TOTAL_GENERAL se trouve sur une ligne pair, ca bug et affiche n=0, si c'est une ligne impaire tout se déroule parfaitement.
Si je met i=10 to 150 : ce sont les lignes impair qui bug et les pair qui fonctionnent parfaitement...
Je ne comprends pas du tout pourquoi, est-ce-que quelqu'un pourrait m'aider à avancer ?
PS: comment lui dire de balayer toute la colonne plutot que de mettre 150 au hasard ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 25 juil. 2011 à 12:29
Bonjour,
1) interroge-toi sur ce que je souligne ici (sans balises code pour pouyvoir souligner) :
For i = 11 To 150
If Cells(i, 1).Value "Total_général" Then n i Else: i = i + 1 Next
Dans une boucle for x to ...
x est incrémenté d'une unité à chaque tour de boucle (c'est la vocation d'une boucle For ... to ...) !
en "forçant" ton i à "avancer" d'une unité supplémentaire, tu "sautes" bien évidemment une valeur de i
2) intéresse-toi à ce que ferait un Exit For (bien qu'avec ce nom-là ... ce serait "très parlant")
_________________
Utiliser le bouton "REPONSE ACCEPTEE" sur une réponse exacte facilite les recherches ultérieures d'autres forumeurs. PENSEZ-Y SVP