Sub supp_doublons_et_tri()
Dim Doublons As Object, I As Long
Set Doublons = CreateObject("Scripting.Dictionary") 'on déclare l'objet Doublons
For I = 2 To [B65000].End(xlUp).Row 'de la ligne 2 à la dernière ligne de D
If Not Doublons.Exists(Cells(I, 2).Value) Then 'si la valeur n'existe pas, on l'insère dans l'objet
Doublons.Add Cells(I, 2).Value, Cells(I, 2).Value
Else
Cells(I, 2).ClearContents 'si elle existe, vide la cellule
End If
Next I
Doublons.RemoveAll
For I = 2 To [D65000].End(xlUp).Row 'de la ligne 2 à la dernière ligne de D
If Not Doublons.Exists(Cells(I, 4).Value) Then 'si la valeur n'existe pas, on l'insère dans l'objet
Doublons.Add Cells(I, 4).Value, Cells(I, 4).Value
Else
Cells(I, 4).ClearContents 'si elle existe, vide la cellule
End If
Next I
Range("B1:B" & [B65000].End(xlUp).Row).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess
Range("D1:D" & [D65000].End(xlUp).Row).Sort Key1:=Range("D1"), Order1:=xlAscending, Header:=xlGuess
End Sub