Public Sub sansfonction()
Dim cr As Collection 'déclare la variable cr (Collection des Références)
Dim cd As Collection 'déclare la variable cd (Collection des Désignations)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim pl As Range 'déclare la variable pl (PLage)
Set cr = New Collection 'définit la variable cr
Set cd = New Collection 'définit la variable cd
Set pl = Sheets("Feuil1").Range("B1:B" & Sheets("Feuil1").Range("B65536").End(xlUp).Row) 'définit la variable pl
'***************************
'remplissage des collections
'***************************
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
On Error Resume Next 'gestion des erreurs (un doublon génère une erreur à cause de la clé "CStr(cel.Value)")
cr.Add cel.Value, CStr(cel.Value) 'ajoute la valeur de la cellule comme nouveau membre de la collection cr
cd.Add cel.Offset(0, -1).Value, CStr(cel.Offset(0, -1).Value) 'ajoute la valeur de la cellule à gauche comme nouveau membre de la collection cd
Next cel 'prochaine cellule cel de la plage pl
'************************
'récupération des données
'************************
With Sheets("Feuil2")
For x = 1 To cr.Count
.Cells(x + 3, 2).Value = cr(x)
.Cells(x + 3, 1) = cd(x)
Next x
End With
End Sub