Masquer,démasquer des colonnes en fonction de la position d'un bouton

Bonjour à tous,

Je vais essayer d'être clair. Alors voilà, je cherche à masquer démasquer des colonnes en fonction de la position d'un bouton (parfaitement aligné sur une case) lorsque je click dessus. J'utilise actuellement le code suivant pour le bouton nommé cp8, sachant qu'il est sur la colonne T :

Columns("W:Z").EntireColumn.Hidden = Me.cp8.Value

Cela fonctionne parfaitement, néanmoins, il s'agit d'un planning et il y a un bouton par mois. Par conséquent je dois réaliser douze codes, soit un par bouton pour chaque mois. Je cherche à optimiser ce code en ayant l'approche suivante : lorsque je click sur le bouton 1 ou 2 ou 3 ou.... je masque 4 colonnes décalées de 3 colonnes de la position du bouton (à droite). Je démasque ces mêmes colonnes lorsque que je click de nouveau sur le bouton.

J'ai chercher à avancer sur cette problématique avec la fonction : TopLeftCell.Address, cependant je suis novice sur VBA et je n'arrive pas à m'en sortir.

D'avance merci pour précieuse aide, cordialement.

Bonsoir,

un fichier pour une idée :

L'idée ? créer des boutons qui on pour nom une partie "commune" et une partie numérique afin de connaître leur position non pas au niveau des colonnes mais dans la série des boutons.

On récupère cette partie numérique et dans une formule on trouve le numéro de la première colonne à masquer, la dernière étant 3 colonnes plus loin, il suffit d'ajouter 3 et on a bien la zone de 4 colonnes à masquer.

Ensuite pour afficher masquer les colonne on demande à VBA de faire l'inverse (NOT) de ce qui est :

Si c'est affiché, alors on fait NOT(affiché) = masqué, si c'est masqué alors on fait NOT(masqué) = affiché.

C'est une des solution possible, ici il n'y a que deux boutons mais à partir du moment où la structure des colonnes est la même cela devrait suffire...

@ bientôt

LouReeD

Rechercher des sujets similaires à "masquer demasquer colonnes fonction position bouton"