merci pour ton aide mais finalement j'ai trouvé ... pfiou au bout de 5h à tester toutes les possibilité!!
derniere questions:
comment : autoriser la saisie par clavier des 1er lettre de la liste déroulante mais la saisie finale doit etre obligatoire égal à un nom dans la liste ?
j'ai tester plusieurs truc mais trop "puissant" et bloque la saisie complète de toute lettre par exemple...
voici le code que vous m'avez créer du coup:
Private Sub ComboBox1_Change()
If Me.ComboBox1 <> "" And IsError(Application.Match(Me.ComboBox1, a, 0)) Then
Set d1 = CreateObject("Scripting.Dictionary")
tmp = UCase(Me.ComboBox1) & "*"
For Each c In a
If UCase(c) Like tmp Then d1(c) = ""
Next c
Me.ComboBox1.List = d1.keys
Me.ComboBox1.DropDown
End If
If ComboBox1.ListIndex = -1 Then '-1 quand la ligne est éditée
EditLigne = True
End If
ActiveCell.Value = Me.ComboBox1
End Sub