Masquer/afficher des colonnes en fonction d'une cellule (liste)

Bonjour tout le monde,

Je suis novice en VBA et je me retrouve face à un problème que je n'arrive pas à résoudre seul malgré la lecture approfondie et attentive de plusieurs des posts et de vos réponses sur ce forum.

Sur ma feuille de calcul, je souhaite cacher les colonnes en fonction du mois qui est choisi dans la liste (cellule A2) de la feuille TM du fichier ci-joint. Par exemple, si "juillet" est choisi dans cette cellule, alors toutes les colonnes qui correspondent à des autres mois sont masquées. Lorsque je choisis "Tous les mois" alors tous les mois sont affichés.

Par ailleurs, il faudrait que ce soit "dynamique" à savoir que si une fois avoir sélectionné le mois de juillet, on sélectionne celui d'octobre, alors seul le mois d'octobre soit affiché.

Je ne sais pas si :

1/ ma demande est claire

2/ une solution simple est possible par une écriture vba

Je vous joins le fichier et vous remercie pour la réponse que vous pourrez m'apporter.

Je vous souhaite une excellente soirée,

Drumtim

21test-mois.xlsm (186.21 Ko)

Bonjour,

Le code n'est peut-être pas le meilleur, mais il a l'avantage de fonctionner ...

J'ai nommé les champs des mois > voir Formules > Gestionnaire des noms ...

L'on verra peut-être une version améliorée être proposée par un forumeur bientôt ...

ric

Hello,

Alors je suis vraiment novice en VBA & cie, mais ma question bête de novice est: pourquoi tu ne travailles pas en croisée dynamique ? Cela te permettrait de sélectionner les mois, non ?

Bonjour,

Merci beaucoup ric, cela fonctionne parfaitement, génial! Il faut encore que je me forme pour parvenir à trouver ce genre de solution..

Athylia : en fait là il s'agissait plutôt d'une fonctionnalité pour l'utilisateur qui rentrera des données (pour ne pas qu'il ait des centaines de colonnes à dérouler) :ensuite je travaille effectivement avec un TCD !

Merci encore et excellente journée,

DrumTim

Rechercher des sujets similaires à "masquer afficher colonnes fonction liste"