Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

alcefox

XLDnaute Nouveau
Bonjour à tous,

Je poste ce message ici, car je sais que la solution est une macro mais je ne sais pas comment la faire du tout. En fait, j'aimerai avoir sur une feuille EXCEL une liste déroulante des 12 mois de l'année (cellule rose dans le fichier ci-joint) qui génère, dès que l'on choisit le mois désiré, le tableau nommé "déchets triés" qu'il faut ensuite compléter qui est a remplir pour chaque mois. A savoir qu'il s'agit des mêmes tableaux pour chaque mois, il y a juste les données dans les colonnes colorées qui changent. Le truc c'est qu'à chaque fois qu'on choisit un mois et que l'on clique dessus, on doit cliquer sur le bouton "rechercher" ou "activer" pour générer le tableau.

Autres chose, vous verrez qu'en dernier onglet, j'ai un tableau reprenant toutes mes données mensuelles avec un graphique. Je souhaitais savoir si, une fois que la macros est mise en place, pourrai-je toujours intégrer une RECHERCHEV dans les cellules de ce tableau afin que les données se génèrent également automatiquement depuis les tableaux mensuelles de la liste déroulante? N'y aura-t-il pas d'erreurs?

Je lutte depuis une semaine, j'ai fais tous les forum mais je n'ai trouvé aucune explication claire ou bien trop complexe pour moi.


Merci d'avance pour votre aide,

Bien cordialement,


Alice.
 

Pièces jointes

  • Exemple.xlsx
    48.3 KB · Affichages: 131
  • Exemple.xlsx
    48.3 KB · Affichages: 158
  • Exemple.xlsx
    48.3 KB · Affichages: 167

Modeste

XLDnaute Barbatruc
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Bonjour alcefox et bienvenue à toi, sur le forum du dernier recours :rolleyes:

Allons-y par étape, si tu veux bien:
- voyons déjà si tu repasses par ici ...
- si oui, dans ton fichier, tu as un paquet de formules et de plages nommés en erreur (ça ne facilite pas la "lecture" de ton fichier)
- tu évoques des boutons "rechercher" et "activer" :confused: :confused:
- tu parles de macro et il est tout à fait possible qu'on doive en passer par là!? Cependant, autant profiter des fonctionnalités existantes, avant de réinventer la roue. À titre d'exemple, dans la pièce jointe, au changement de mois dans la "cellule rose", ton calendrier se met à jour automatiquement, dans la feuille "Suivi (2)": les dates, en colonne A (avec une formule) et les week-ends en gris sur toute la largeur du calendrier (grâce à une Mise en Forme Conditionnelle). Simplement, j'ai modifié un rien ton remplissage par motif pour "masquer le texte".

Peux-tu déjà vérifier si tout ceci te conviendrait? Prends le temps de voir si tu ne rencontres aucun souci avec les formules et les MFC (je ne saurai pas repasser avant le milieu de l'après-midi, mais d'autres viendront sans doute donner un coup de main!)

On s'occupera ensuite des formules dans les colonnes de couleur, puis de créer une feuille (en fin de mois) ... à moins qu'on ne crée, dès le départ les 12 feuilles ... auquel cas tu n'aurais pas besoin de macro!?
 

Pièces jointes

  • Exemple (alcefox).xlsx
    57.4 KB · Affichages: 206

alcefox

XLDnaute Nouveau
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Bonjour Modeste,

Tout d'abord merci pour t'as réponse et ton aide. Et oui en effet c'est tout à fait ce que je cherchais.

Pour ce qui est des formules en erreur #REF! c'est parceque ces cellules dépendent d'un autre petit tableau que j'avais enlevé car il ne concernait pas vraiment mon problème de base (du coup je l'ai rajouté dans l'onglet "Suivi (2)" et j'ai remis la formule dans les colonnes blanches pour que tu comprennes un peu mieux).

Ensuite, en ce qui concerne les boutons "rechercher" ou "activer", il s'agit en fait du bouton que tu insères en macro afin de lancer la macro, mais du coup vu la solution que tu m'as proposé y en a pas du tout besoin.

De plus, j'ai vu que tu as mis une formule également pour mon calendrier DATEVAL ainsi qu'une fonction SI, c'es très bien merci beaucoup. Je n'avais pas pensé à tout cela effectivement.

Enfin, pour information, j'avais réduit mon fichier à trois mois, pour faire simple, mais oui sinon c'est sur 12 mois.

Alors les questions que j'ai maintenant sont les suivantes:
- Tu remarqueras qu'une fois mes données rentrées dans les colonnes de couleurs, un poids s'affiche en face. Sauf que j'ai beau mettre des pourcentages différents pour chaque mois, ça me mets les mêmes pourcentages pour les trois mois. comment faire pour que chaque mois ait ses propres données? Par conéquent, comment mettre à jour mes totaux pour chaque colonne et par mois, car du coup le total pour le mois de janvier est le même que pour février ou mars alors que les quantité sont différentes?
- comment mettre à jour également par la suite le petit tableau bleu qui se trouve en dessous en fonction du mois choisi et du coup même problème avec mon dernier onlget nommé "synthèse".

Et oui si je peux éviter une macro cela m'arrangerait grandement! Dans tous les cas merci beaucoup pour ton aide, j'attendrai ton retour (ou l'aide de quelqu'un d'autre biensûr).

Bien cordialement,
 

Pièces jointes

  • Exemple (alcefox) (2).xlsx
    38.6 KB · Affichages: 105
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Re-bonjour,

On ne peut pas dire qu'on s'est bousculé au portillon :rolleyes: ... Dommage: un autre point de vue est (presque toujours) intéressant!

Que tu sois ravie des formules proposées me ... ravit, mais le mieux, dans un futur proche, sera que tu t'y intéresses pour les comprendre (c'est ce qui te permettra, par la suite de ne plus "écluser" tous les forums ;) et te permettra d'éviter certaines erreurs de manipulations). Par contre, reviens autant de fois que tu en auras besoin, s'il y a des choses qui ne te semblent pas claires, des questions, etc...

Si j'ai bien compris le besoin, j'ai ajouté une nouvelle formule en colonnes C et E. Dans ta formule, sauf erreur, tu oublies de modifier les références de tes tableaux, dans la RECHERCHEV: tu fais systématiquement la recherche dans la plage $M$8:$N$12 ... qui ne concerne que les "Déchets tout venant" (c'était donc ça, cette odeur, quand j'ai ouvert le fichier! :eek:)
La formule en question est chaque fois placée en ligne 9 (même si cette ligne correspond à un samedi ou un dimanche!) ... de cette manière, on pourra ensuite faire 11 copies de la feuille (mais seulement quand celle-ci sera complète et sans erreur!).
La formule de la colonne C peut donc être copiée vers E, G, I et K, en ligne 9, à chaque fois; il te suffit, dans chacune de ces colonnes de modifier la référence à la matrice, pour la RECHERCHEV, de manière qu'elle pointe chaque fois sur le bon tableau et de recopier ensuite vers le bas.
Attention aussi que dans ce cas-ci, le dernier argument de RECHERCHEV ne doit pas être FAUX (ou 0), sauf si tu n'indiques jamais qu'un des 5 pourcentages prévus!? Tu n'auras jamais de 17% ou de 81,5% dans tes colonnes de couleur??

Tant que j'y pense, il sera peut-être utile de verrouiller/déverrouiller certaines cellules avant de faire des copies de la feuille (de manière qu'on puisse y ajouter une petite protection, par la suite!)
Dans le même ordre d'idée, il faudra, avant de faire les copies, s'assurer qu'il ne "traîne" aucune valeur "parasite" (il y en a, à ce stade, dans des lignes de samedi ou dimanche, masquées par la MFC). Ces valeurs ne sont pas prises en compte dans mes formules, mais "réapparaîtront" un autre mois quand ce ne sera plus une ligne de week-end)

Attention: en lignes 40-41 (pourquoi sont-elles fusionnées, au passage??? une seule ligne suffit, dont tu augmenteras la hauteur!) attention, disais-je que tes sommes ne prennent pas en compte les valeurs de la ligne 39! Là aussi il faut que la formule soit adaptée, que le mois compte 28, 29, 30 ou 31 jours.

Pour ces totaux, ainsi que ton "petit tableau bleu en-dessous" si on fait bien des copies de la feuille (et pas des copier-coller de son contenu, on ne devrait rencontrer aucun problème ... mais on verra après!).
Plus tard aussi, le tableau récapitulatif en dernière feuille: une chose à la fois (je ne dispose que de 2 neurones, qui fonctionnent en alternance :p)

Dis-nous déjà si on a fait le tour de toutes tes questions?
 

Pièces jointes

  • Exemple (alcefox) V2.xlsx
    38.2 KB · Affichages: 112

alcefox

XLDnaute Nouveau
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Re-bonjour,

Merci pour ta réponse. Oui je me réjouis mais j'essaie de comprendre tout en même temps, car sans cela je ne sais pas ce que je fais (même si parfois je lâche un peu). Pour ce qui est de l'erreur de ma formule, oui j'ai fait ça rapidement mais c'est vrai qu'il s'agit d'une RECHERCHEV dans les différentes matrices sur la droite. Par contre, il s'agira de la même matrice pour chaque tableau (c'est-à-dire les mêmes poids et pourcentage), et ce, pour tous les mois. De plus, oui les pourcentages sont les mêmes car il s'agit des mêmes taux de remplissage donc lorsqu'on indique un autre pourcentage autres que ceux-ci, la cellule ne génère aucune donnée et reste vide.

Quant au verrouillage, il faut que je verrouille seulement les colonnes blanches (les colonnes poids) ainsi que les dates. Pour les petits parasytes oui effectivement il faut qu'on les enlève. Pour les cellules fusionnées c'est juste une question d'esthétisme (pourquoi j'en sais trop rien, je trouve juste ça plus agréables à lire haha).

Donc si je résume bien, il faudrait maintenant faire 11 copies de la feuille après qu'on ait enlevé : les "parasytes", qu'on ait appliqué ma formule à toutes les cellules des colonnes poids (y compris les week end sinon, ça pourrait ne pas être pris en compte quand on change de mois: qu'on passe de février à mars par exemple), et que je "défusionne" ma ligne de totaux.

Par ailleurs, je trouvais ça plus esthétique de ne pas faire apparaître les jours de week end mais en y réfléchissant bien, si vraiment on veut faire le plus simple possible, on peut tout à fait les laisser, cela fera juste des cases vides sur le tableau.

Et oui tu as répondu à toutes mes questions mais j'en ai encore une: pourquoi doit-on faire 11 copie de la feuille suivi? Car si j'ai ma liste déroulante avec mes 12 mois, c'est justement pour éviter les 12 onglets mois.

En résumant, si on fait des copie de la feuille "Suivi(2)" pour chaque mois (donc 12) c'est pour "stocker les données" saisies. Je pourais ensuite masquer ces 12 feuilles (car le but étant d'avoir que quelques feuilles pour simplifier la tâche). La feuille "Suivi(2)" sera alors la seule feuille visible où j'aurais tous mes mois dans ma liste déroulante. Et chaque donnée que je rentre pour chaque mois, s'enregistrent dans les feuilles mensuelles qui sont masquées (si je suis ton raisonnement qui est de faire la copie de la feuille "Suivi(2)". Autrement, je suis un peu perdue... VOILA, en espérant que je sois claire, sinon je recommence!

Ensuite, reste encore ce problème des données qui s'actualisent bien pour janvier et février, mais pour mars non, le tableau de mars garde les mêmes valeurs que le tableau de février.


Merci beaucoup dans tous les cs pour ton aide précieuse,


Bien cordialement,
 

Modeste

XLDnaute Barbatruc
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Bonsoir,

Euh je n'ai pas tout compris de ton premier paragraphe (que tu essayais de comprendre, ça oui et je m'en réjouis :D) ... mais la partie depuis le "Par contre ..." quelque chose a dû m'échapper!

Pour le verrouillage et la protection, si tu connais, c'est parfait ... je l'avais mentionné à titre de pense-bête ... je peux déjà oublier!

Pour le reste, effectivement, mon idée était plutôt de créer 12 onglets! Si on veut éviter les macros, il me semblait que c'était le plus adapté? Si tu n'as qu'une feuille, les formules ne permettront pas de garder les valeurs ... Enfin, moi, je ne vois pas comment, sauf en copiant le contenu de la feuille, avant le changement de mois et en collant les valeurs dans une autre feuille!? Je ne vois donc pas bien la différence que tu fais :confused: puisque, d'une manière comme d'une autre, le nombre de feuilles sera identique ... Mais ce n'est pas parce que je ne vois pas que ton idée est sotte ou irréaliste, hein! Rien ne t'empêche d'insister ... peut-être que "mon franc finira par tomber"!? (ou celui de quelqu'un d'autre)
sinon je recommence!
p-têt ben qu'il te faudra en passer par là!

Je crains bien de ne pas avoir compris non plus la fin (avec le mois de mars qui ne se met pas à jour) ... dans le dernier fichier que tu as déposé?? Un mois de mars??

Vois si tu peux expliquer à un homme vieillissant et déjà bien diminué (donc en prenant le temps de bien articuler, tu vois? :eek:) ce que tu imagines. Si tu veux, je peux créer un premier jet avec 3 ou 4 mois (et ce que j'ai compris) ... Quelque part à mi-chemin de nos deux réflexions, on trouvera peut-être une idée?

Demain, je suis HS une bonne partie de la journée ... tu as tout le temps de réfléchir :p
 

alcefox

XLDnaute Nouveau
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Bonjour Modeste,


Je m'en doutais que cela semblait un peu incompréhensible, pour être plus simple et voilà en fait ce que je veux faire depuis le début, que je ne sais pas faire (tu verras en PJ le résultat que je veux). Tu comprendras aussi pourquoi j'optais au début pour une macro.
Ces tableaux sont ma solution je pense. Pour info, ce ne sont pas les miens, je suis tombé dessus dans d'autres forum, mais ils me semblaient adéquates.


Merci pour ton aide,
 

Pièces jointes

  • liste déroulante.xlsm
    37.6 KB · Affichages: 167
  • liste déroulante.xlsm
    37.6 KB · Affichages: 166
  • liste déroulante.xlsm
    37.6 KB · Affichages: 156
  • 4444.xlsm
    20 KB · Affichages: 107
Dernière édition:

alcefox

XLDnaute Nouveau
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Petit Update,

En trouvant l'aide d'un ami, j'ai enfin réussi à faire ce que je voulais, je te mets le fichier en copie.

En fait c'est tout simple, dans une autre feuille nommée 'Liste', j'ai inscrit dans la colonne de gauche mes mois (cette colonne sert à crée la liste déroulante qui se trouve dans la feuille 'Suivi'. En face de la liste de mes mois, j'inscris le numéro de la la première ligne du tableau correspondant pour chaque mois. Exemple: pour le mois de janvier j'ai inscris dans la cellule de droite le numéro 8, car la première ligne du tableau de janvier correspond à la ligne 8. Et ainsi de suite pour chaque mois dans la feuille 'Liste'.

Une fois que c'est fait, on retourne dans la feuille 'Suivi', on choisi une cellule libre pour y inscrire une RECHERCHEV qui m'aide à recherché dans la cellule de ma liste déroulante (cellule rose en haut à gauche donc la cellule A5), le numéro correspondant à tel mois. Ce qui donne : =RECHERCHEV(A5;Liste!A2:B13;2;FAUX). Pour vérifier si c'est tout bon, on choisi peu importe le mois dans la liste déroulante, et on voit que dans la cellule que l'on a choisi pour inscrire les numéros, les numéros changent fonction du mois sélectionné.

Ensuite, il faut mettre une toute petite macro riquiqui de rien du tout pour tout ça!!!. On va dans l'onglet 'Développeur' en haut et dans "Insérer" on insère un bouton de "Contrôle de formulaire". On le place où l'on veut, on inscrit ce que l'on veut (j'ai mis pour ma part mon fameux "Rechercher") et on clique droit, puis "affecter une macro", on en crée une avec le nom que l'on veut, puis s'ouvre alors VBA. Un module s'ouvre avec inscrit :


Sub mamacro() <= il s'agit du nom de ma macro
ActiveWindow.ScrollRow = [D5].Value
End Sub


Le numero de cellule entre crochet indique la cellule que j'ai choisi pour y inscrire mes petits numéros. On copie-colle tout ça dans la fenêtre module. Une fois qu'on a fini d'écrire dans la fenêtre module, on enregistre en .xslm puis on test pour voir si ça marche. (et ça marche!).


J'espère avoir été claire, si besoin je peux réexpliquer car j'ai tout mon temps maintenant que j'ai trouvé!

Merci dans tous les cas pour ton aide, car ça ne m'aurait pas fait avancer du tout sans tout cela. Donc je te remercie et Vive la France !

Bien cordialement,
 

Pièces jointes

  • Mon tableau.xlsm
    68.5 KB · Affichages: 139

Modeste

XLDnaute Barbatruc
Re : Liste déroulante renvoyent tableau affecter à macro VBA avec bouton

Bonsoir,

Content que tu aies trouvé ton bonheur! :D

Comme j'y avais encore travaillé hier soir, je dépose cette version (pas du tout pour te convaincre de son intérêt: c'est ton fichier et tu sais ce dont tu as besoin/envie, mais pour d'autres qui passeraient par ici).
Pour ajouter une feuille: clic droit sur l'onglet d'un mois existant > Déplacer ou copier > Avant la feuille "Liste" > Cocher "créer une copie", puis renommer le nouvel onglet et indiquer le nom du mois en B1
Dans la feuille "Synthèse", comme indiqué, les formules du tableau seront à recopier pour les mois suivants, lorsque les feuilles concernées auront été créées.

Bonne continuation :)

PS: Pour info, il est possible de simplifier ta macro. Pas besoin du bouton "Rechercher", de la formule RECHERCHEV, ni même du petit tableau de correspondance en feuille "Liste": juste au changement de valeur en A5, avec ce bout de code dans le module de a feuille "Liste"
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$5" Then Exit Sub
    ligne = Application.Match(Target & " 2014", [A:A], 0)
    ActiveWindow.ScrollRow = ligne
End Sub
 

Pièces jointes

  • Exemple (alcefox) V3.xlsx
    50.7 KB · Affichages: 146

Discussions similaires

Réponses
45
Affichages
1 K

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16