Salut, il y a plusieurs elements a prendre en compte,
premierement la proposition d'utiliser une liste (combo) est pertinante.
et ensuite, savoir où on place le code de recherche, comme indiqué il y a plusieurs types d'evenements dans un controle (qu'il soit textbox, combo ou autre) et en particulier il en existe qui sont appellés lors de la pression de touche ou lors de modification.
par exemple KeyPress est appellé au moment ou tu appuye sur une touche (que ca soit un caractere comme la lettre "a" ou bien la touche "Entrée").
Le mieux est de faire un test, avec une appli vide et de regarder dans quelle cas sont appellé chacuns des evenements, c'est pas bien dur, il y a les evenements _Change(), _KeyDown(), _KeyPress(), _KeyUp() c'est important que tu comprennes comment ils réagissent. (et a quel moment : avant ou apres modification de la proprieté Text/Value)
Ensuite, quand tu a trouvé la bonne fonction a utiliser (le bon evenement) il suffit de remplir la liste a ce moment là...
astuce : au fait, dans certain cas tu peux modifier dans la fonction la valeur de la touche (utile pour annuler l'effet d'une touche) au fait la touche ENTREE=13
exemple :
If KeyCode = 13 Then Call ma_fonction_magique : KeyCode = 0 ' ici 0 annule l'effet
sinon, pendant que j'y suis (mais ca ne devrait pas te service) touche TAB c'est 9, et ESC c'est 27.
Au fait, les fonction chr() et asc() permettent de convertir de l'ascii vers du texte, et vis-versa. En fonction de ce que tu va choisir, il se peut que tu soit amené a convertir un KeyCode ou un KeyAscii en un caractere. (c'est pas obligé, mais il est possible que tu passe par une telle solution)
Pense bien a tout gerer (par exemple le _Change() qui va arriver quand tu aura cliqué dans la liste ne doit pas relancer une recherche...)
C'est tres interessant (pas si difficile) et tres instructif.
Partager