Bonjour le fil, bonjour le forum,
Peut-être comme ça :
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter a ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For Each CEL In O.Range("A2:A" & DL).SpecialCells(xlCellTypeVisible) 'boucle sur toutes les cellules visibles CEL de la plage A2:A... DL
D(CEL.Value) = "" 'alimente le dictionnaire D avec la valeur de la cellule de la boucle
Next CEL 'prochaine ligne de la boucle
'renvoie dans B1 redimensionnée la liste des élémnents du dictionnaire D sans doublon
O.Range("B1").Resize(D.Count, 1).Value = Application.Transpose(D.keys)
End Sub