Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$G$5" Then
Set f = Sheets("feuil2")
Dim a()
a = Application.Transpose(f.Range("D1:D" & f.[D65000].End(xlUp).Row).Value)
For i = 1 To UBound(a): a(i) = Left(a(i), 5): Next i
a = SansDoublonsMAC(a())
Target.Validation.Delete
Target.Validation.Add xlValidateList, Formula1:=Join(a, ",")
End If
End Sub
Function SansDoublonsMAC(a())
Dim Maliste As New Collection
On Error Resume Next
For i = LBound(a) To UBound(a)
Maliste.Add Item:=a(i), Key:=a(i)
Next i
On Error GoTo 0
Dim b(): ReDim b(1 To Maliste.Count)
For i = 1 To Maliste.Count
b(i) = Maliste(i)
Next i
SansDoublonsMAC = b
End Function