Effectivement, elle est mal écrite (désolé de te le dire si crûment
) parce que avec ta façon de procéder, tu devrais commencer par la fin de ta plage pour remonter jusqu'à la première ligne.
Voici en tout cas une macro plus efficace et plus rapide :
Sub DetruitLignes()
'Ti
Dim Plage As Range
Application.ScreenUpdating = False
Set Plage = Range("G4", Range("L65536").End(xlUp))
ActiveSheet.AutoFilterMode = False
With Plage
.AutoFilter
.AutoFilter Field:=1, Criteria1:="="
.AutoFilter Field:=2, Criteria1:="="
.AutoFilter Field:=3, Criteria1:="="
.AutoFilter Field:=4, Criteria1:="="
.AutoFilter Field:=5, Criteria1:="="
.AutoFilter Field:=6, Criteria1:="="
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End With
ActiveSheet.AutoFilterMode = False
Application.ScreenUpdating = True
End Sub