OVH Cloud OVH Cloud

Créer liste déroulante avec choix multiples et adapter résultat

1 réponse
Avatar
NicoNi
Bonjour,

Je suis assez novice en VBA mais normalement débrouillard, par contre là je sèche... (le problème a été changé pour des raisons assez évidentes mais la logique y est toujours):

J'ai sur un Onglet1 une liste de fournisseurs de fruits et légumes dans ma colonne A, les produits que je leur achète en colonne B, le prix unitaire en C et total en D, ce qui fait que j'ai plusieurs fois la même valeur dans ma colonne A: j'achète chez mon fournisseur "e;MagicFruits"e; des pommes, mais aussi des poires, des pêches... et j'achète chez mon fournisseur "e;BestFruits"e; des pommes (encore), des kiwis, des prunes... et ainsi de suite.

Dans mon Onglet2, j'ai un tableau qui va me résumer mes achats totaux triés par fruits: le nombre total de pommes achetées, le nombre total de poires... (et là vous voyez le problème qui se profile...)

Je souhaiterais, dans mon Onglet2, avoir une liste déroulante listant tous mes fournisseurs, qui va donc se mettre à jour en fonction des fournisseurs ajoutés et enlevés de la colonne A de mon Onglet1, dans laquelle il sera possible de selectionner un ou plusieurs (ou tous) mes fournisseurs et voir ce que j'achète.

Pour illustrer ce point avec un exemple concret: dans mon Onglet1, je vois:

Colonne A | Colonne B

MagicFruits | Pommes
MagicFruits | Poires
MagicFruits | Pêches

BestFruits | Pommes
BestFruits | Kiwis
BestFruits | Prunes
BestFruits | Clémentines

FreshFruits | Pommes
FreshFruits | Kiwis

Dans mon Onglet2, j'ai déjà un tableau listant plein de fruits et légumes, qui me donne le total de pommes achetées, de poires... et ainsi de suite. Là où je suis largué c'est que je tente de faire un menu déroulant dans cet Onglet2, qui va me proposer chaque valeur unique de la colonne A de mon Onglet1, plus une option "e;Tous les fournisseurs"e;. Ce qui donnerait dans mon menu déroulant

Tous
MagicFruits
BestFruits
FreshFruits

Du coup si je selectionne "e;MagicFruits"e; dans mon menu déroulant, j'aurai mon tableau qui va se remplir en fonction de ce que j'achète chez ce fournisseur: la valeur en face des Pommes, Poires et Pêches, et 0 en fâce de tout le reste. Par contre, si je séléctionne "e;MagicFruits"e; ET "e;BestFruits"e;, mon tableau se met à jour...

Pour l'instant je sais extraire chaque valeur unique de la colonne A de mon Onglet1 (mise à jour de ce qui sera mon menu déroulant du coup), les copier, les coller dans une colonne vide du même onglet loin dans le document, virer toutes les couleurs de texte, les styles de texte, les surlignages... bref les laisser noires sur blanc, de là couper toutes les cellules non vides de ma colonne (ma liste de fournisseurs propre et à jour), je vais ensuite dans mon Onglet2, je vide une colonne, je colle ma liste (comme ça je suis certain que la colonne d'arrivée est vide et propre avant de coller le contenu de ce qui sera mon menu)... et c'est tout... Alors oui quand je vois la compléxité du problème ce n'est pas grand chose...

J'en suis donc à tenter de trouver comment, à partir de cette liste de fournisseurs dans mon Onglet2, propre, remplie de valeur unique à jour, je peux créer mon menu déroulant dans ce même onglet, et mettre mon tableau à jour en fonction des choix... Toute aide ou coup de main sera grandement apprécié parce que je sèche vraiment...

(Autre option possible, probablement plus simple, qui déjà serait super cool: ne pas selectionner plusieurs fournisseurs mais soit un seul, soit tous)

Bonne journée et merci d'avance

Nico

1 réponse

Avatar
MichD
Bonjour,
À première vue, tu n'as pas besoin d'une macro. Ce que tu veux comme
affichage sera obtenu par l'usage d'un tableau croisé dynamique.
La commande est située là :
Menu "insertion" du ruban
section : Tableaux
Commande : Tableau croisé dynamique
Tu peux créer plusieurs tableaux croisés dynamiques à partir de la même
base de données, selon différents affichages que tu veux obtenir.
Ce site Web est excellent sur les tableaux croisés dynamiques, tu as des
explications + des fichiers exemples que tu peux télécharger!
https://www.contextures.com/about.html
Le site est en anglais :
tableaux croisés dynamiques = PivotTables
La notion de segment ou de "Slices" des TCD est intéressante.
MichD