Boucle for each qui ne fait pas sa dernière itération

Bonjour,

Je met ci joint un fichier simplifié qui contient des données. Dans l'onglet A se trouvent des lignes avec des dates et il y a certaines lignes ou il n'y a pas de date en colonne D soit date prod. J'ai créé un code par VBA qui permet de couper coller toutes les lignes sans date prod et les monter en haut du tableau. Le problème est qu'il ne va pas au bout, à chaque fois il me reste une ligne au milieu comme on peut le voir qui n'a pas été traitée.

Un petit coup de main serait le bienvenue.

Merci d'avance,

Eloïse

8fichier-forum.xlsm (24.72 Ko)

Bonjour,

La boucle doit faire le test à partir de la dernière ligne puis remonter puisque vous couper certaines lignes

Sub traitementdonnées()

 For i = Range("A65536").End(xlUp).Row To 3 Step -1
    If Cells(i, 2) = "0" Then
                    Rows(i & ":" & i).Select
                    Application.CutCopyMode = False
                    Selection.Cut
                    Rows("2:2").Select
                    Selection.Insert Shift:=xlDown
                    End If
                    Next

End Sub

Alors j'ai essayé avec ce code, mais j'ai exactement le même problème : la même ligne est restée au milieu ...

Bonjour

Bonjour à tous

Une variante avec variables tableaux

Bye !

Autant pour moi, la solution de enzo fonctionne, je ne sais pas pourquoi quand je l'ai essayé la première fois j'ai du me tromper. Merci à vous deux

bonjour,

essaie avec cette instruction (enlève les ")

   If Cells(i, 2) = 0 Then

C'est qui enzo ?

Rechercher des sujets similaires à "boucle each qui fait pas derniere iteration"