Option Explicit
Sub test1()
Dim d As Object 'déclare la variable d (Dictionnaire)
Dim c As Range 'déclare la variable c (Cellule)
Range("Recap").CurrentRegion.Offset(1, 0).Clear 'efface les ancienes données
Set d = CreateObject("Scripting.Dictionary") 'définit le dictionnaire d
For Each c In Range("Plage1") 'boucle sur toutes les cellules c de la plage nommée "Plage1"
d(c.Value) = "" 'alimente le dictionnaire d
Next c 'prochaine cellule de la boucle
Range("recap").Offset(1, 0).Resize(d.Count, 1) = Application.Transpose(d.keys) 'récupère le dictionnaire sans doublons dans la cellule en dessous de la plage nommée "recap"
Set d = Nothing 'vide le dictionnaire d
'tri alphabétique des données récupérées
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("recap"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("recap").CurrentRegion
.Header = xlYes
.Apply
End With
End Sub