VB Bouton vers macro

Bonjour à toutes et à tous,

Lors d'un précédent message, votre fine équipe ;) m' a proposé ce code pour un bouton afin d'afficher ou non certaines colonnes.
Cela fonctionne parfaitement mais ...

J'aimerais mettre ce bouton dans le ruban.
D'après ce que j'ai trouvé comme info, il faut donc que ce soit une macro mais le code ne fonctionne pas quand il est en macro mais je ne sais pas comment changer tout cela.

Private Sub CommandButton1_Click()
ActiveCell.Select 'enlève le focus au bouton
Select Case Me.CommandButton1.Caption 'agit en fonction du texte du bouton
    Case "Masquer" 'cas "Masquer"
        Me.CommandButton1.Caption = "Afficher" 'modifie le texte du bouton
        Range("A1,C1,F1,J1,O1,Q1,S1,T1,U1,V1,W1,X1,Y1,Z1,AA1,AB1").EntireColumn.Hidden = True 'masque les colonne C, I, O, U et Z
    Case "Afficher" 'cas "Afficher"
        Me.CommandButton1.Caption = "Masquer" 'modifie le texte du bouton
        Range("A1,C1,F1,J1,O1,Q1,S1,T1,U1,V1,W1,X1,Y1,Z1,AA1,AB1").EntireColumn.Hidden = False 'masque les colonne C, I, O, U et Z
End Select 'fin de l'action en fonction du texte du bouton
End Sub

Merci d'avance pour vos pistes et vos aides.

Je vous souhaite une bonne journée.

Bonjour,

La, il es affecté à un bouton de commande,

En 1ère ligne, changer

Private Sub CommandButton1_Click()

par par exemple

Sub cacher_col()

Bonjour Thrrybo,

Merci pour ce conseil mais j'ai toujours un message d'erreur.

Erreur de compilation : Utilisation incorrecte du mot clé Me

Et là je trouve rien dans mes lectures.

Merci

Autant pour moi, je n'avais pas regardé la suite du code.

Sub cacher_col()
With ActiveSheet
If Columns("A:A").Hidden = False Then
        Range("A1,C1,F1,J1,O1,Q1,S1,T1,U1,V1,W1,X1,Y1,Z1,AA1,AB1").EntireColumn.Hidden = True 'masque les colonne C, I, O, U et Z
Else
        Range("A1,C1,F1,J1,O1,Q1,S1,T1,U1,V1,W1,X1,Y1,Z1,AA1,AB1").EntireColumn.Hidden = False 'masque les colonne C, I, O, U et Z
End If
End With
End Sub

Mais avec ce code-ci ton bouton n'est plus fonctionnel bien entendu.

Merci beaucoup.

Cela fonctionne parfaitement.
Le souci est que je ne comprends certaines choses (génial de faire le boulot à ma place mais j'aime bien comprendre pour essayer de progresser ;) )

Ca sera sympa de me répondre pour me faire évoluer ;)

Pourquoi la ligne

If Columns("A:A").Hidden = False Then

Est ce que cela permet d'initier la macro et de savoir si caché ou pas caché ?

Donc si par exemple, dans un autre code, je ne cache pas la col A mais la col B je change le If en B : B ?

Merci d'avance pour vos réponses.

C'est bien ça.

Il vérifie si la colonne A est visible ou non. Et si elle ne l'est pas il la masque, et la rend visible si la condition est vrai.

Sachant que tu masques plusieurs colonnes, j'aurais pu indiquer n'importe quelle autre colonne qui se masque avec le code, tel que C,F,J,Q, etc..

Merci beaucoup pour cette précision.

Rechercher des sujets similaires à "bouton macro"