Microsoft 365 macro afficher/masquer avec un seul bouton

Dju1

XLDnaute Occasionnel
Bonjour à tous,
j'utilise une macro pour masquer des colonnes et j'aimerai que cette macro soit utilisable avec un seul bouton.

En cliquant je voudrai donc que ça affiche si la colonne est masqué ou que ça masque si la colonne est affiché.

Pour le moment j'utilise la fonction selection.entirecolumn.Hidden....

Merci d'avance
 
Solution
J'ai le sh qui est en variable non définie.
Si vous n'avez pas mis au début "Option explicit" la déclaration est optionnelle.
Mais en pas à pas, vous accédez à la macro ?
( vous cliquez sur la ligne "Sub MasquerDemasquer()" puis vous appuyez sur F8, pour faire du pas à pas, à chaque appui une ligne s'exécute )
un petit peu compliqué car beaucoup de données privées.
Vous enregistrez votre fichier en "exemple.xlsm" et vous effacer toutes les données des feuilles, elles sont inutiles pour l'exercice.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Dju,
Un essai en PJ avec un seul bouton, il suffit de lire le texte du bouton pour savoir quelle action faire :
VB:
Sub MasquerDemasquer()
    Set Sh = ActiveSheet.Shapes("Bouton")
    If Sh.TextFrame2.TextRange.Text = "Masquer colonnes" Then
        [E:O].EntireColumn.Hidden = True
        Sh.TextFrame2.TextRange.Text = "Démasquer colonnes"
        Sh.Fill.ForeColor.RGB = RGB(255, 255, 0)
    Else
        [E:O].EntireColumn.Hidden = False
        Sh.TextFrame2.TextRange.Text = "Masquer colonnes"
        Sh.Fill.ForeColor.RGB = RGB(150, 200, 220)
    End If
End Sub
 

Pièces jointes

  • Classeur1.xlsm
    15 KB · Affichages: 11

Dju1

XLDnaute Occasionnel
Bonjour Sylvanu,
merci c'est exactement ce que je recherche. En revanche, je n'arrive pas à le transposer sur mon fichier.
Je renomme ma forme "Bouton" mais ça ne fonctionne pas, je dois certainement oublié quelque chose.

Merci d'avance
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai le sh qui est en variable non définie.
Si vous n'avez pas mis au début "Option explicit" la déclaration est optionnelle.
Mais en pas à pas, vous accédez à la macro ?
( vous cliquez sur la ligne "Sub MasquerDemasquer()" puis vous appuyez sur F8, pour faire du pas à pas, à chaque appui une ligne s'exécute )
un petit peu compliqué car beaucoup de données privées.
Vous enregistrez votre fichier en "exemple.xlsm" et vous effacer toutes les données des feuilles, elles sont inutiles pour l'exercice.
 

Discussions similaires

Statistiques des forums

Discussions
314 720
Messages
2 112 187
Membres
111 457
dernier inscrit
anglade