Sub Filtrer_Doublons()
Dim LO As ListObject, P As Range, n&, i&
Application.ScreenUpdating = False
For Each LO In Sheets("COMMANDE").ListObjects 'tableaux structurés
Set P = LO.Range
P.Sort P(1), xlAscending, P(1, 3), , xlAscending, Header:=xlYes 'tri sur 2 colonnes
n = 0
For i = P.Rows.Count To 2 Step -1
If P(i, 1) = P(i - 1, 1) And P(i, 3) = P(i - 1, 3) Then
If IsNumeric(P(i - 1, 2)) And IsNumeric(P(i, 2)) Then P(i - 1, 2) = P(i - 1, 2) + P(i, 2)
P.Rows(i).ClearContents 'efface le contenu de la ligne
n = n + 1 'compte les lignes effacées
End If
Next i
If n Then
P.Sort P(1), xlAscending, Header:=xlYes 'tri pour regrouper
LO.Resize P.Resize(P.Rows.Count - n) 'redimensionne le tableau
P.Rows(P.Rows.Count - n + 1).Resize(n).Clear 'RAZ si nécessaire
End If
Next LO
End Sub