Bonjour Kisscool, bonjour le forum,
Essaie comme ça :
Sub Macro2()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Long 'déclare la variable DL (dernière Ligne)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim PL As Range 'déclare la variable PL (PLage)
Set O = Worksheets("Balance AG") 'définit l'onglet O
DL = O.Range("A4").End(xlDown).Row 'définit la dernière ligne édité DL de la colonne A de l'onglet O
TV = O.Range(O.Cells(1, 18), O.Cells(DL, 18)) 'définit le tableau des valeurs TV
Set PL = O.Range("A1") 'initialise la plage PL
For I = 5 To DL 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la cinquième)
'si la donnée en ligne I de TV est nulle, redéfinit la plage PL
If TV(I, 1) = 0 Then Set PL = IIf(PL.Cells.Count = 1, O.Rows(I), Application.Union(PL, O.Rows(I)))
Next I 'prochaine ligne de la boucle
PL.Delete 'supprime la plage PL
End Sub