Bonjour,
Un test qui me semble fonctionner :
Sub NET()
Dim L%, LR%
With ActiveSheet
LR = .Cells(.Rows.Count, 3).End(xlUp).Row 'Défini la dernière ligne sur la base de la colonne C
For L = LR To 2 Step -1 'Sur les lignes LR à 2 en remontant
If .Cells(L, 12) = 0 And Application.WorksheetFunction.CountIfs(.Columns(3), .Cells(L, 3), .Columns(4), .Cells(L, 4)) > 1 Then .Rows(L).Delete 'Si cellule ligne L et colonne L = 0 et NB.SI.ENS(Colonne C, cellule L colonne C, colonne D, cellule L colonne D) est plus grand que 1 alors supprime ligne
Next L 'Passe à la ligne suivante
End With
End Sub
A voir comment ça se comporte sur 500 000 lignes.
Cdlt,