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.
Dans ma tête ca marche et je tourne un peu en rond sans trouver une solution.
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
Le petit débutant en VBA que je suis vous remercie.
Partager