Optimiser recherche worksheet

Signaler
Messages postés
5
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
6 juin 2008
-
Messages postés
5
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
6 juin 2008
-
Bonjour,

Voici mon problème:
Dans un classeur Excel j'ai plus de 50 worksheets, chacune correspondant à une entreprise. C'est long et pénible de retrouver manuellement la feuille d'une entreprise en utilisant la barre déroulante d'Excel.

Je souhaite donc construire 2 listes déroulantes sur une première feuille afin de faciliter la recherche.
- une première pour choisir le secteur de l'entreprise
- une deuxième pour choisir l'entreprise
- un bouton GO pour afficher automatiquement la feuille de l'entreprise choisie

Sachant que:
-sur chaque feuille, le secteur de l'entreprise est renseigné dans une plage de cellules (léger décalage possible entre chaque feuille) strictement à droite d'une cellule appelée "Secteur"

Je n'arrive pas à résoudre ce problème avec les fonctions classiques d'Excel.

Comment procéderiez-vous sous VBA?

Merci d'avance,
Teritoto

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
C'est une histoire de boucle de recherche :
Saisis tes deux valeurs dans deux TextBox, maTextBoxSecteur et maTextBoxEntreprise, par exemple, puis, dans le bouton Go :
- Fait une boucle qui passe en revue chaque feuille avec "For Next", genre 
      Dim xx As FeuilleExcel
      For Each xx In MonClasseur
- Dans chaque feuille, teste ta plage de cellule pour détecter les paramètres saisis
   Il faudra peut-être pour cela donner un nom aux cellules de chaque feuille renfermant ces données
      If xx!Secteur = maTextBoxSecteur.Text And _
         xx!Entreprise = maTextBoxEntreprise.Text Then
- Si tu l'as trouvé :
   - Affiche la feuille, genre xx.Show
   - Abandonne la recherche avec un "Exit For"

Bien sûr, ce ne sont pas les termes exacts, je ne suis pas feru d'Excel, à toi d'approfondir

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
5
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
6 juin 2008

Salut,

Merci d'avoir répondu aussi vite!
Le souci avec cette solution est que je ne connais pas avec exactitude le secteur et le nom de l'entreprise recherché. De plus, VBA mettrait sûrement un peu de temps à screener chaque feuille.

Je pensais donc dans une feuille à part:
-lister les différents secteurs dans une première colonne 
-lister les différentes entreprises selon leur secteur dans les colonnes suivantes
-lier chaque entreprise à sa feuille Excel

Créer 2 listes déroulantes sur une autre feuille (page d'accueil):
-une première pour sélectionner le secteur
-une deuxième qui affiche les entreprises correspondantes
-un bouton GO qui permet d'afficher la feuille de l'entreprise sélectionnée.

Qu'en pensez-vous et comment rédigeriez-vous le code?

Merci,
Teritoto