(Do ... Loop While) et (For ... Next) ensemble ?

Bonjour à tous,

Je suis nouveau sur le forum mais je vous lis depuis longtemps. Donc bonjour à tous et merci de votre aide.

Par contre, j'ai un problème que je n'arrive pas à résoudre.

Voici le code mais la boucle continue indéfiniment et je comprend pas bien pourquoi ni comment.

C'est surtout le Do ... Loop que je connais moins bien.

Sub Test()
DLig = Range("A1").End(xlDown).Row
Dim i As Integer
For i = 1 To DLig

Do
Cells(i, 10) = "Test"
Loop While Cells(i, 9) = Cells(i, 8)

Next

End Sub

Donc je veux marquer sur la colonne 10 "Test" jusqu'à ce que la colonne 8 et 9 soit les même.

(c'est une simplification du problème réel mais grossomodo, c'est ça)

Merci d'avance

Pedro

Bonjour

proposition de correction de ton code. Il n'y a pas 2 boucles imbriquées. mais seulement une seule.

tant que cellule (i,8)<>cellule(i,9)
mettre "test" en cellule(i,10)
incrémenter i

j'ai oublié de mettre le code

Sub Test()
    dl = Cells(Rows.Count, 1).End(xlUp).Row
    i = 7
    Do While Cells(i, 9) <> Cells(i, 8) And i <= dl
        Cells(i, 10) = "Test"
        i = i + 1
    Loop
End Sub

Oui effectivement, j'ai pas réfléchi. Merci beaucoup

Donc ça donne ça pour moi (car mon i commence à 7)

Sub Test()
i = 7
Do While Cells(i, 9) <> Cells(i, 8)
Cells(i, 10) = "Test"
Loop 
End Sub

Beaucoup plus simple évidement

Merciiii


Désolé, j'ai été trop vite. Voici le code corrigé!

Sub Test()
Dim i As Integer
i = 7
Do While Cells(i, 9) <> Cells(i, 8)
Cells(i, 10) = "Test"
i = i + 1
Loop 
End Sub

re-bonjour,

j'ai rajouté le code dans mon post message précédent.

Salut Pedro, H2SO4,

mmmmh, quelque chose me dit que tu risques de tourner en rond...

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
i = 7
While (Cells(i, 8) = "" And Cells(1, 9) = "") Or Cells(i, 8) <> Cells(i, 9) ' Or i <= Range("A" & Rows.Count).End(xlUp).Row
    Cells(i, 10) = "Test"
    i = i + 1
Wend
'
End Sub

Sauf si tu es absolument certain de trouver deux colonnes égales, il vaut mieux ajouter une condition libératoire!

Ici, la ligne correspondant à la dernière valeur de la colonne [A] (sous commentaire).

A+

Bonjour,

Tu fais très bien de me le dire

Mais effectivement, c'est prévu dans mon fichier initial

Merci encore

Rechercher des sujets similaires à "loop while next ensemble"