Mise en place d'une fonction recherche dans un tableau de données

ArnaudBernardeau

XLDnaute Junior
Bonjour,

Je poste ce message en espérant que vous pourrez m'aider: j'ai un fichier sous forme de tableau avec une dizaine de colonnes et j'aimerai introduire un UserForm "Recherche" permettant d'afficher la ou les lignes contenant le mot tapé par l'utilisateur dans la "TextBox_Recherche". Les autres lignes seraient alors masquées et le résultat classé en haut du tableau par ordre alphabétique par exemple...

Une recherche à vide ou autre permettrait de réinitialiser le tableau pour tout afficher de nouveau.

Auriez vous une idée pour réaliser une telle chose?
Merci d'avance pour votre aide!

Arnaud
 

Dranreb

XLDnaute Barbatruc
Re : Mise en place d'une fonction recherche dans un tableau de données

Bonjour.

OutIdx a tout ce qu'il faut pour permettre une programmation concise dans l'Userform, avec des ponts (méthodes et évènements) d'interactions limités vers ou depuis les modules de service.
Mais le plus simple à développer serait de prévoir un ComboBox, et non un TextBox, pour chaque critère et de commencer par déclarer WithEvents un objet ComboBoxLiés en tête de l'Userform.

Cela dit, je me demande quand même un peu pourquoi un simple filtre automatique ne ferait pas largement l'affaire ?
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Mise en place d'une fonction recherche dans un tableau de données

Bonjour Arnaud, Bernad, bonjour le forum,

En pièce jointe un petit fichier exemple avec une UserForm contenant une TextBox et une ListBox. Double-clique sur n'importe quelle cellule éditée de l'ongle Feuil1 pour ouvrir l'UserForm. Tape le texte recherché dans la TextBox1 puis double-clique dans une des lignes de la ListBox1 (si il y en as...). Les cellules correspondantes de l'onglet Feuil1 sont sélectionnées...
Code commenté à adapter, bien sûr, à ton cas (puisque tu n'as pas daigné joindre u fichier toi-même)...
Le fichier :
 

Pièces jointes

  • ArneauBernardeau_v01.xlsm
    19.7 KB · Affichages: 31
Dernière édition:

ArnaudBernardeau

XLDnaute Junior
Re : Mise en place d'une fonction recherche dans un tableau de données

Bonjour Robert,

Merci beaucoup pour ton aide, c'est génial! Je n'avais pas joint de fichier parce que pour l'instant je n'ai qu'un tableau vide sans aucune données dedans mais j'aurai dû mettre un petit exemple comme toi...
Merci encore !
 

ArnaudBernardeau

XLDnaute Junior
Re : Mise en place d'une fonction recherche dans un tableau de données

Bonjour Robert,

Je suis actuellement bloqué sur des petits détails que je n'arrive pas à régler. Pourriez-vous m'aider s'il vous plaît?
J'ai adapté votre code à mon fichier et tout marche bien sauf que:
1) Je n'arrive pas à comprendre la syntaxe du resize "O.Cells(.Column(2, .ListIndex), 4).Resize(, 2).Select" et donc je n'arrive pas à paramétrer cette fonction...
2) Lorsqu'il affiche un numéro de téléphone dans la ListBox il supprime les 0 au début de la suite de nombres et je n'arrive pas à éviter cela.
3) Dans le cas où la première colonne d'une nouvelle ligne n'est pas remplie, la recherche ne prend pas en compte cette ligne, comment dois-je faire pour l'inclure?
4) J'aimerai lancer la recherche à l'aide d'un Bouton Rechercher mais impossible de raccrocher celui ci à la macro avec un code du type "UserForm_Recherche.Show", savez vous comment faire?
5) Enfin, lorsqu'il affiche l'adresse dans la ListBox, il ne prend pas en compte le saut de ligne entre la rue et le CP mais affiche une balise saut de ligne, peut on l'enlever?

Merci infiniment pour votre aide!
Je vous joint mon fichier.

Cordialement,

Arnaud
 

Pièces jointes

  • exemple.xlsm
    960.8 KB · Affichages: 31
  • exemple.xlsm
    960.8 KB · Affichages: 41
  • exemple.xlsm
    960.8 KB · Affichages: 32
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 204
Messages
2 086 198
Membres
103 155
dernier inscrit
lombrik