Bonjour,
pour que ça soit rapide il faut tout supprimer d'un coup.
Pour se faire je suppose que ton tableau a une ligne de titres avec un filtre auto, et que ta colonne A est toujours remplie.
Sub suppLig0()
Application.ScreenUpdating = False
Columns(2).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("B2").Resize(Cells(Rows.Count, 1).End(xlUp).Row - 1).FormulaR1C1 = _
"=OR(RC[2]="""",RC[2]=0,RC[4]="""",RC[4]=0,RC[5]="""",RC[5]=0,)"
ActiveSheet.Range("$A$1").Resize(Cells(Rows.Count, 1).End(xlUp).Row).AutoFilter Field:=2, Criteria1:="VRAI"
On Error Resume Next
Range("_FilterDataBase").Offset(1, 0).Resize(Range("_FilterDataBase").Rows.Count - 1) _
.SpecialCells(xlCellTypeVisible).Delete Shift:=xlUp
On Error GoTo 0
Columns(2).EntireColumn.Delete
End Sub
J'insère une colonne en B pour une formule détectant tes lignes indésirables, je filtre dessus et les supprimes en une fois. La colonne B est ensuite supprimée.
La totalité du tableau est traité à chaque fois.
eric
PS : éventuellement tu peux ajouter Application.ScreenUpdating = False en 1ère ligne si tu veux éviter le petit clignotement (non mis dans le fichier).