Lepetitmars
Messages postés2Date d'inscriptionlundi 14 mai 2012StatutMembreDernière intervention16 mai 2012
-
14 mai 2012 à 11:53
Lepetitmars
Messages postés2Date d'inscriptionlundi 14 mai 2012StatutMembreDernière intervention16 mai 2012
-
16 mai 2012 à 13:48
Bonjour à tous,
Voici mon problème : Dans un classeur Excel, j'ai plusieurs feuilles avec des lignes de différentes couleurs. Mon objectif est de faire un certain nombre d'opérations sur les lignes de la même couleur, puis de passer au groupe suivant de lignes ayant la même couleur etc.?
J'ai donc une première boucle for qui gère le traitement d'une feuille à l'autre (d'indice j) et une seconde boucle for qui sert à parcourir les lignes d'une même feuille (indice j).
J'ai également mis une boucle While qui permet d'incrémenter la valeur de j jusqu'à ce que l'on atteigne le prochain bloc de ligne ayant la même couleur.
Cette boucle me semble obligatoire, car sinon je vais continuer à travailler sur le même groupe de ligne ayant la même couleur?
Le gros problème c'est que cette boucle ne fonctionne pas?
En effet, je ne sort jamais de la boucle même lorsque que assertion est fausse (ex : lorsque j 6 et j+1 7)?
Je pensais au départ que c'était une erreur de syntaxe dans l'écriture de l'assertion sauf que :
-Le débogueur ne me signale pas d'erreur
-Si j'inverse l'insertion en mettant ? Worksheets(i).Rows(j).Interior.Color <> Worksheets(i).Rows(j + 1).Interior.Color ? dans ce cas ben je sort bien de ma boucle?
J'espère que vous pourrez m?aider à trouver d'où vient mon erreur?
Voici mon code :
Sub MacroPourForum()
Dim HeureApparitionDefaut As Date
Dim HeureInterventionPotentielle As Date
Dim HeureApparitionSecondMessage As Date
Dim DelaiAvantIntervention As Date
For i = 1 To 2
For j = 3 To Worksheets(i).Range("D65536").End(xlUp).Row
ElseIf HeureInterventionPotentielle > HeureApparitionSecondMessage And Worksheets(i).Rows(j).Interior.Color = Worksheets(i).Rows(j + 1).Interior.Color Then 'Permet de traiter par exemple les pb défaut controle jeu
Lepetitmars
Messages postés2Date d'inscriptionlundi 14 mai 2012StatutMembreDernière intervention16 mai 2012 16 mai 2012 à 13:48
Bonjour,
Pour ceux que ca pourrait intérresser, j'ai réglé mon problème en créant artificiellement une sorte de boucle "While" en utilisant une structure avec un "If" et un "Goto"
Ce qui donne au niveau du code la chose suivante :
Endloop :
If Worksheets(i).Cells(j, 4).Interior.Color = Worksheets(i).Cells(j + 1, 4).Interior.Color Then