Faire une recherche avec VBA sans bouton 

0
6921

Parfois il peut être intéressant d’effectuer une recherche dans une base de données apres avoir indiquer une information dans une cellule sans devoir utiliser une formule pour afficher un résultat.

Comme dans notre exemple au moment ou on entre une information dans le nr article le code va effectuer une recherche dans la base de données, si une recherche est trouvée alors il va afficher les informations. Et en bonus nous allons aussi voir comment afficher les informations quand on clique dans notre base de données.

Vous pouvez retrouver sur l’exercices ici Fichier faire une recherche avec VBA sans bouton

L’objectif

Avant de commencer nous allons un peut voir ce que nous voulons faire et puis l’appliquer. Alors ici nous voulons prendre l’information qui se trouve dans la cellule E2 et rechercher dans la colonne D de notre tableau si on retrouve une correspondance.

Si une correspondance est trouvée nous allons devoir prendre les données de chaque colonne de la ligne et les placer à leurs places.

recherche vba

Cela nous allons le faire comme suite dans un module.

recherche vba

Comme nous pouvons le voir nous avons traduit ce que nous avons voulons faire en code, c’est-à-dire regarde sur chaque ligne de notre tableau dans la colonne D si la correspondance est = a la cellule E2 alors affiche les informations et quand c’est fini quitte la recherche.

Par contre si tu ne trouve pas la correspondance alors regarde sur la prochaine ligne

Simple non.

Ne pas faire attention aux majuscules

Désormais si nous plaçons dans la recherche un texte en minuscule alors le programme ne trouvera pas le résultat car cela ne correspond pas au mot rechercher qui est en Majuscule.

Pour éviter cela il nous suffit d’indiquer dans le module que nous ne voulons pas faire la différence entre minuscule et majuscule avec le code suivant Option Compare Text

Avec se petit code nous pouvons indiquer le texte en majuscule ou en minuscule pas mal hein.

Vider les informations si pas de correspondance de recherche.

Nous pouvons voir que quand nous fessons une cherche qui abouti à rien hé ben la recherche précédant reste visible.

Pour ne rien avoir si une recherche n’aboutit à rien nous allons placer le code suivant

recherche vba

Rechercher apres la validation

Alors c’est bien beau tout ça mais comment rechercher apres avoir indiquer une information dans une cellule.

Vous allez voir que c’est très simple vous allez sur le code de la page avec l’event change. Là nous allons indiquer qu’il faut uniquement lacer le code apres que la cellule E2 à changer et cela on le fait avec le code suivant.

recherche vba

Désormais quand on change le nr article alors les informations se mette à jour

Bonus 1 afficher la ligne de la recherche.

Pour afficher la ligne en bleu une fois la recherche trouver il nous suffit de sélectionner notre tableau et puis dans la mise en forme conditionnelle on place la condition suivante.

recherche vba

Hahahahaha vous croyez que c’était plus difficile que ça, hé ben oui vu que nous avons déjà indiquer l’information dans la recherche il suffit de l’afficher.

Afficher les informations quand on clique dans le tableau.

Ici vous allez voir ce n’est pas difficile vous allez voir, mais avant de vous montrez comment faire je vais vous demander comme vous aurez procéder. Ne tricher pas et faite mois savoir dans les commentaires avant de lire la suite.

La solution

Alors avant de commencer nous allons nommer notre table Tbl puis nous allons dire au code s’il y a un changement de sélections dans la plage de données Tbl alors on place l’information de la colonne D de la ligne ou on se trouve dans la cellule E2

recherche vba

Vous voyez ce n’est pas difficile

Conclusion

Alors quel sont les avantages avec une telle recherche comparé à une recherche classique avec une formule.

Je dirais que la plus grande différence est simplement si un utilisateur efface par erreur la formule de recherche avec une recherche comme on viens de faire il ne pourra pas effacer le code et nous n’avons pas de formule qui s’affiche.

J’espère que ce cours vous serra utile est on se retrouve dans un prochain cour.

 

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.