Macro suppression de ligne

Bonjour à tous !

Je suis actuellement en train de travailler sur une macro mais y'a un petit truc qui m'échappe. Si vous pouviez m'aider, ce serait super !

Alors la macro en question comporte une boucle. L'objectif est de supprimer toutes les lignes qui ne contiennent rien en Colonne D.

J'ai donc fait la macro suivante :

Sub Macro3()

Dim n As Integer

n = 1

While n < 100

If IsEmpty(Range("D" & n)) Then Range("D" & n).EntireRow.Delete

n = n + 1

Wend

End Sub

Elle fonctionne parfaitement et me supprime les lignes dont la colonne D n'est pas renseignée ...

.. Jusqu'à ce que deux lignes successives présentent une colonne D non renseignée.

La macro supprime alors la première des deux, et s'arrête de tourner, sans aller jusqu'à 100 comme je l'ai précisé dans le code.

Je vous mets en pièce jointe le fichier, avec deux onglets : OK (la macro fonctionne car les lignes où D n'est pas renseigné sont disparates) et PAS OK (la macro s'arrête lorsqu'elle rencontre deux lignes non renseignées en D successives).

Je vous remercie d'avance pour vos réponses !

Cordialement

12exempl.xlsm (19.06 Ko)

bonjour

essai

Sub Macro()

Application.ScreenUpdating = False

lr = Cells(Rows.Count, 1).End(xlUp).Row

For i = lr To 1 Step -1

If Cells(i, 4) = "" Then

Rows(i).Delete Shift:=xlToLeft

End If

Next i

Application.ScreenUpdating = True

End Sub

Bonjour Belkacem,

Merci beaucoup de ta réponse.

Cependant, j'aime comprendre ce que je fais et c'est la raison pour laquelle j'attendais réellement une réponse sur le "pourquoi ça ne marche pas" dans ma macro.

Merci encore.

Bonjour

Logique car quand n= 12 vous supprimez la ligne 12. A ce moment la ligne 13 (vide) est positionnée sur la ligne 12 alors que n devient égal à 13 (n = n+1)

Faites plutot ceci :

Sub Macro3()
Dim n As Integer
For n = 100 To 1 Step -1
    If IsEmpty(Range("D" & n)) Then Range("D" & n).EntireRow.Delete
Next
End Sub

Attention à placer votre le code dans un module et non dans thisworkbook comme vous l'avez fait dans votre fichier

Si ok, merci de cloturer le fil lors de votre réponse en cliquant sur le V vert à coté du bouton EDITER

Cordialement

Dan,

Je vous remercie de ces explications très claires,

En vous souhaitant une bonne journée,

Cordialement.

Rechercher des sujets similaires à "macro suppression ligne"