Optimiser recherche worksheet

Teritoto Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 6 juin 2008 - 21 mai 2008 à 00:10
Teritoto Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 6 juin 2008 - 21 mai 2008 à 15:50
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 mai 2008 à 01:23
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)
0
Teritoto Messages postés 5 Date d'inscription mardi 20 mai 2008 Statut Membre Dernière intervention 6 juin 2008
21 mai 2008 à 15:50
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
0
Rejoignez-nous