Condition IF dans une boucle Do Until

KheopS75

XLDnaute Nouveau
Bonjour à tous,

J'ai un soucis avec une boucle Do Until. Je vais essayer d'être clair.
J'ai donc créé une boucle Do Until qui exécute une instruction mais j'aimerais que lorsqu'une cellule respecte une condition particulière l'instruction soit différente sans pour autant quitter la boucle Do Until.
Voici un exemple certainement plus clair :

Code:
Do Until Cells(Ligne_Listing, 1).Text <> Cells(Ligne_Listing + Compteur_Tri, 1).Text
                  
 [COLOR="#FF0000"]                   If Cells(Ligne_Listing, 1).Text = "Valeur Particulière" Then
                        Cells(Ligne_Attrib, Colonne) = Cells(Ligne_Listing + Intervalle, 2)
                        Cells(Ligne_Attrib, Colonne + 1) = Cells(Ligne_Listing + Intervalle, 3)
                        Cells(Ligne_Attrib + 1, Colonne) = Cells(Ligne_Listing + Intervalle + 1, 2)
                        Cells(Ligne_Attrib + 1, Colonne + 1) = Cells(Ligne_Listing + Intervalle + 1, 3)
                        Colonne = Colonne + 2
                        Intervalle = Intervalle + 2
                        Compteur_Tri = Compteur_Tri + 2
                        Loop
                    End If[/COLOR]
                    
                    Cells(Ligne_Attrib, Colonne) = Cells(Ligne_Listing + Intervalle, 2)
                    Cells(Ligne_Attrib, Colonne + 1) = Cells(Ligne_Listing + Intervalle, 3)
                        
                    Colonne = Colonne + 2
                    Intervalle = Intervalle + 1
                    Compteur_Tri = Compteur_Tri + 1
            Loop

La partie en rouge dans mon code est donc celle que je n'arrive pas à exécuter. En effet j'obtiens une erreur de compilation: "Boucle sans Do". Je comprends bien que l'instruction Loop, incrusté dans ma boucle If est la source de mon erreur, mais comment puis-je faire?

Merci de votre attention
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Condition IF dans une boucle Do Until

Bonjour et bienvenu,

En lisant votre code, vous avez deux fins de boucle ( 2 fois l'instruction LOOP) et qu'une seule fois un début de boucle (instruction DO).
Essayez comme ceci:

Code:
Do until condition1
  if condition_particulière then
  ...
  ...
  else
  ...
  ...
 endif

loop
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 429
Messages
2 088 351
Membres
103 824
dernier inscrit
frederic.marien@proximus.