Inserer la fonction de recherche dans une textbox + saisie semi automatique des
arnaud95000
Messages postés46Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention18 décembre 2007
-
12 déc. 2007 à 17:27
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
15 déc. 2007 à 13:59
Bonjour, afin de finaliser un projet et de le rendre agrèable à l'utlisateur, j'aimerai faire une textbox qui permette d'une part de selectionner les cellules les unes après les autres contenant le mot dans la textbox comme la fonction recherche, et si possible qu'il fasse une saisie semi-automatique, c'est à dire imaginon que sur notre plage nous avons Toto Titi Tipa, qu'il me propose Tipa lorsque j'ai écrit Tip.
Merci beaucoup et bonne soirée a vous.
A voir également:
Inserer la fonction de recherche dans une textbox + saisie semi automatique des
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 12 déc. 2007 à 23:03
Dans l'événement KeyPress du textbox, il faudra que tu utilises la fonction Find pour trouver la première occurrence d'un mot commençant par le texte du textbox, en utilisant le paramètre xlPart
Mais ça risque de ralentir ton programme passablement, j'imagine...(?)
arnaud95000
Messages postés46Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention18 décembre 2007 13 déc. 2007 à 10:47
Bonjour, j'ai essayé de faire la méthode, mais je n'y suis pas arrivé, auriez vous un exemple de code de la manière d'utiliser ces commandes svp?Merci beaucoup et bonne journée.
zener82
Messages postés15Date d'inscriptionsamedi 25 novembre 2000StatutMembreDernière intervention18 juillet 2021 13 déc. 2007 à 22:50
Pour la fonction recherche, il suffit d'utiliser la fonction .Find appliquée à un Range par exemple [exemple Range("A:A").Find(textbox.text, + options) ]. Cette fonction, tu peux la lancer lors de l'appui sur un bouton que tu places à coté.
J'ai déjà fait le test, ca marche bien, et ca se comporte exactement comme la fonction recherche d'Excel (Ctrl+F).
Pour la saisie semi-automatique, je pense également que ca risque d'etre trop lourd, car il va falloir balayer l'ensemble de tes cellules. Si ta plage de cellule de texte à rechercher n'est pas trop grande, c'est peut etre jouable...
Vous n’avez pas trouvé la réponse que vous recherchez ?
zener82
Messages postés15Date d'inscriptionsamedi 25 novembre 2000StatutMembreDernière intervention18 juillet 2021 15 déc. 2007 à 11:32
J'ai pas bien compris pourquoi il vaut mieux utiliser la boucle For en cas de recherche de début de chaine...
De mon point de vue, et sauf erreur de ma part, il suffit d'indiquer dans les options de la fonction "Find" la propriété xlPart (au lieu de xlWhole) afin de faire la recherche sur une partie de la cellule seulement... Ainsi, le range devrait pouvoir fonctionner, et est beaucoup plus rapide que toute boucle dans la feuille excel.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 15 déc. 2007 à 13:59
Salut Zener,
C'est vrai que Find est plus rapide, en principe. C'est pourquoi je le lui avais suggéré. Et je l'utilise régulièrement.
Par contre, si tu recherches "tati", Find pourrait trouver "Patati"
qui n'est pas nécessairement ce qu'on veut trouver... Il faudrait alors refaire une recherche avec FindNext ...
Dans un cas comme dans l'autre (Find ou For Each...Next), ça prendra une vérification des 2 mots avec Left. Alors, difficile de dire laquelle des méthodes sera la plus rapide. Il faudrait faire le test sur des milliers de recherches... J'ai déjà fait des tests avec boucles et Find (avec Mortalino dont on n'entend plus parler...?) et ses boucles étaient plus rapides que mes Find... allez savoir (?)
Et on en revient à la lenteur du programme suite à chaque touche vérifiée.
Finalement, le mieux serait peut-être de charger toutes les valeurs de la colonne dans un tableau, le trier et boucler celui-ci (?) Encore là, ça prendrait des tests...