Bonsoir Greg,
Tu trouveras en pièce jointe un exemple de résolution du problème posé.
=====================================================
Private Sub CommandButton1_Click()
'Paramétrage
Set RngTab = Range("A1:C17") '<<< A régler: Plage de cellules contenant les clés à comparer
'Ajout d'une colonne servant à mémoriser les numéros de lignes avant le tri
Columns("A:A").Insert Shift:=xlToRight 'Insertion colonne
Set RngTab = RngTab.Offset(0, -1).Resize(, RngTab.Columns.Count + 1) 'Actualisation adresse Plage
For Each Row In RngTab.Rows 'Numérotation des lignes
Row.Cells(1) = Row.Row
Next Row
'Tri de la plage sur les trois clés
RngTab.Sort _
Key1:=Range("B1"), Order1:=xlAscending, _
Key2:=Range("C1"), Order2:=xlAscending, _
Key3:=Range("D1"), Order3:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal
'Repérage et suppression des doublons
i = 1
For j = 1 To RngTab.Rows.Count - 1
If RngTab.Rows(i).Cells(1, 2) = RngTab.Rows(i + 1).Cells(1, 2) And _
RngTab.Rows(i).Cells(1, 3) = RngTab.Rows(i + 1).Cells(1, 3) And _
RngTab.Rows(i).Cells(1, 4) = RngTab.Rows(i + 1).Cells(1, 4) Then
RngTab.Rows(i + 1).Delete
Else
i = i + 1
End If
Next j
'Restauration de l'ordre des lignes tel qu'il était avant le tri
RngTab.Sort _
Key1:=Range("A1"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
'Suppression de la colonne utilisée pour mémoriser l'ordre des lignes
Columns("A:A").Delete Shift:=xlToLeft
End Sub
=====================================================
N'oublie pas d'adapter le paramètre "Plage de celluless ...."
Bon courage pour la suite.
Omicron