Re : Supprimer des doublons
Bonsoir essaye ce petit code
Sub Doublon()
Dim cellulecourante As Range
Dim cellulesuivante As Range
Set cellulecourante = ActiveSheet.Range("A1")
ActiveSheet.Range("A2").Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2"), Order2:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Do While Not IsEmpty(cellulecourante) = True
Set cellulesuivante = cellulecourante.Offset(1, 0)
If cellulesuivante.Value = cellulecourante.Value Then
If Lignesidentiques(cellulecourante, cellulesuivante) = True Then
MsgBox "Doublon"
cellulecourante.EntireRow.Delete
End If
End If
Set cellulecourante = cellulesuivante
Loop
End Sub
////////////////////////////////////////////////////////////////////////////////////
Function Lignesidentiques(cellulecourante As Range, cellulesuivante As Range) As Boolean
If cellulecourante.Offset(0, 1).Value <> cellulesuivante.Offset(0, 1).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 2).Value <> cellulesuivante.Offset(0, 2).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 3).Value <> cellulesuivante.Offset(0, 3).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 4).Value <> cellulesuivante.Offset(0, 4).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 5).Value <> cellulesuivante.Offset(0, 5).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 6).Value <> cellulesuivante.Offset(0, 6).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 7).Value <> cellulesuivante.Offset(0, 7).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 8).Value <> cellulesuivante.Offset(0, 8).Value Then
Lignesidentiques = False
ElseIf cellulecourante.Offset(0, 9).Value = "" Then
Lignesidentiques = False
Else
Lignesidentiques = True
End If
End Function