Sub epurer()
Dim triage As Collection
Dim nbre As Long, cptr As Long
'ActiveSheet.Unprotect
Application.ScreenUpdating = False
'liste originale dans colonne A
nbre = Application.CountA(Range("A:A"))
Set triage = New Collection
On Error Resume Next
cptr = 1
While cptr <= nbre
'le parametre Key devant être unique, un doublon provoquerait une erreur _
le gestionnaire étant activé, Tonton Vba ignore l'erreur et passe à la cellule suivante _
s'il n'y a pas pas d'erreur le numéro d'item de la collection triage est alors implémenté
triage.Add Cells(cptr, 1).Value, CStr(Cells(cptr, 1).Value)
cptr = cptr + 1
Wend
On Error GoTo 0
nbre = triage.Count
' Ecrit la zone épurée (ici dans des cellules mais peut-etre adapté à des listbox et combobox)
Range("A:A").ClearContents
cptr = 1
While cptr <= nbre
Cells(cptr, 1) = triage(cptr)
cptr = cptr + 1
Wend
'ActiveSheet.Protect
End Sub