Sub TEST()
'on traite la colonne E de la feuille nommée Feuil1
SupprDoublonColonne Sheets("Feuil1").Range("e:e")
End Sub
Sub SupprDoublonColonne(Colonne As Range)
' L'argument Colonne est un range qui est une colonne unique
Dim derlig&, nbTotLig&, i&, n&, t
' vérif si Colonne est bien une colonne entière
nbTotLig = Colonne.Parent.Columns(1).Rows.Count
If Colonne.Columns.Count > 1 Or Colonne.Rows.Count <> nbTotLig Then
MsgBox "l'argument de cette fonction n'est pas une colonne : Echec!", vbCritical
Exit Sub
End If
' Tri et suppression des doublons
With Colonne
derlig = .Cells(.Rows.Count, 1).End(xlUp).Row
If derlig = 1 Then Exit Sub
.Resize(derlig).Sort key1:=Colonne(1, 1), order1:=xlAscending, Header:=xlNo, MatchCase:=False
t = .Resize(derlig).Value: n = 1
For i = 2 To derlig
If t(i, 1) <> t(n, 1) Then n = n + 1: t(n, 1) = t(i, 1)
Next i
For i = n + 1 To derlig: t(i, 1) = Empty: Next
.Resize(derlig) = t
'MsgBox "il reste " & n & " élément(s)."
End With
End Sub