Bonjour à tous.

Afin d'augmenter la rapidité de saisie d'un champ d'une Combobox assez remplie j'avais dans l'idée de la vider en fonction des caractères saisis

J'ai beaucoup cherché mais pas vraiment trouvé. J'ai sans doute multiplier les variables un peu inutilement. C'était pour me clarifier la chose.
Donc en théorie je dois :

Lors de l'appui sur touche, la macro prend les caractères inscrits et les compare à ceux présents (au début et la même longueur de la chaine ) dans la liste du combobox. Si les caractères sont différents l'entrée est supprimée. On continue jusqu'à la fin.

Je pense avoir fait une erreur dans ma boucle de parcours de la liste mais peut être aussi dans les comparaison de caractères.

Je vois une autre faille si il y a un effacement d'un caractère et je ne sais pas trop comment le gérer.

La liste est générée ailleurs.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Sub NomBox_Change()
Dim lettre As Characters
Dim l As String
Dim Nom As String
Dim limite As Integer
Dim lenght As Integer
Dim i As Integer
Dim tampon
limite = NomBox.ListCount
Nom = CStr(NomBox)
lenght = Len(Nom)
 
 
For i = 1 To lenght
  l = Left(Nom, i)
    limite = NomBox.ListCount
    For j = 0 To limite - 1
        tampon = Left(NomBox.List(j), i)
        If l <> tampon Then NomBox.RemoveItem (j)
        limite = NomBox.ListCount
    Next j
 
Next
 
End Sub
Dans ma tête ca marche et je tourne un peu en rond sans trouver une solution.

Le petit débutant en VBA que je suis vous remercie.