Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Modification automatique de l'apparence d'un bouton

  • Initiateur de la discussion Initiateur de la discussion Mastergonk
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Mastergonk

Guest
Bonjour à tous,

avant tout je vous remercie pour le grand nombre d'informations que j'ai déjà pu trouver sur ce forum.

J'ai créé une feuille excel dans laquelle j'ai un grand nombre de colonnes. J'ai créé plusieurs boutons me permettant d'afficher ou de masquer chacune de ces colonnes selon les informations que je veux afficher.
Pour cela, j'ai adapté pour chaque bouton la formule suivante :
Sub Bouton1_QuandClic()
Range("J5").EntireColumn.Hidden = Not Range("J5").EntireColumn.Hidden
End Sub


Maintenant, je souhaiterais que chaque bouton m'affiche l'état de la colonne correspondante. Par exemple, lorsque la colonne "J" est affichée, que le bouton apparaissent en vert, mais qu'il apparaisse en rouge lorsqu'elle est masquée.

Comment procéder ?

je vous remercie par avance de vos réponses.

Cyril
 
Re : Modification automatique de l'apparence d'un bouton

Bonjour Cyrill, JNP

Pas sur d'avoir tout compris, mais regarde le code ci-dessous, pour un bouton de la boite à outils controles placé sur une feuille de calcul, code à utiliser dans le module de celle-ci :

Pour la colonne A
Code:
Private Sub CommandButton1_Click()
Columns(1).Hidden = Not Columns(1).Hidden
CommandButton1.BackColor = IIf(Columns(1).Hidden, RGB(255, 0, 0), RGB(0, 255, 0))
End Sub

bon après midi
@+
 
Re : Modification automatique de l'apparence d'un bouton

Bonjour JNP et Pierrot93,

je vous remercie pour vos messages mais je dois avouer que je ne suis pas parvenu à faire ce que je voulais avec vos indications. 😕 😱
Plutôt que d'essayer de décrire mon fichier, je vous le poste. 😀

Je vous rappelle mon besoin :
Je souhaiterais que chaque bouton m'affiche l'état de la (ou des) colonne(s) correspondante(s). Par exemple, lorsque la colonne "E" est affichée, que le bouton correspondant apparaisse en vert, mais qu'il apparaisse en rouge lorsqu'elle est masquée.

Merci d'avance de vos réponses
 

Pièces jointes

Re : Modification automatique de l'apparence d'un bouton

Bonjour,

le code donné était plutôt destiné à un contrôle de la "boite à outil contrôles", regarde l'exemple dans le fichier joint, code dans le module de la feuille.

bonne fin d'après midi
@+
 

Pièces jointes

Re : Modification automatique de l'apparence d'un bouton

Bonjour à tous,
j'ai essayé d'appliquer la solutionde Pierrôt93 mais je n'y parviens pas... 🙁
Je n'arrive pas à appliquer le changement de couleur à mon bouton, et je n'arrive pas à intégrer les boutons de Pierrôt93 dans mon document...
Quelqu'un pour aider un boulet ??? 😱
 
Re : Modification automatique de l'apparence d'un bouton

Bonjour à tous

A la demande de PierreJean🙂 que je salue particulièrement :

Code:
Sub Bouton31_QuandClic()
Dim s As Shape
Set s = ActiveSheet.Shapes("Button 31")
    x = Range("E5").EntireColumn.Hidden
    If x Then
       Range("E5,F5").EntireColumn.Hidden = False
       With s.TextFrame.Characters
        .Text = "Masquer Tout"
        .Font.ColorIndex = 3
       End With
    Else
       Range("E5,F5").EntireColumn.Hidden = True
        With s.TextFrame.Characters
        .Text = "Afficher Tout"
        .Font.ColorIndex = 5
       End With
    End If
End Sub

bonne soirée
@+
 
Re : Modification automatique de l'apparence d'un bouton

Re

on pourrait également raccourcir un peu le code ainsi :

Code:
Sub test()
Dim s As Shape
Set s = ActiveSheet.Shapes("Button 31")
Range("E5,F5").EntireColumn.Hidden = Not Range("E5,F5").EntireColumn.Hidden
x = Range("E5").EntireColumn.Hidden
With s.TextFrame.Characters
    If x Then
        .Text = "Masquer Tout"
        .Font.ColorIndex = 3
    Else
        .Text = "Afficher Tout"
        .Font.ColorIndex = 5
    End If
End With
End Sub

Edition déplacé le bloc "with"
 
Dernière édition:
Re : Modification automatique de l'apparence d'un bouton

Re

une dernière version pour le fun....

Code:
Option Explicit
Sub test()
Range("E5,F5").EntireColumn.Hidden = Not Range("E5,F5").EntireColumn.Hidden
With ActiveSheet.Shapes("Button 31").TextFrame.Characters
    .Text = IIf(Range("E5").EntireColumn.Hidden, "Masquer Tout", "Afficher Tout")
    .Font.ColorIndex = IIf(Range("E5").EntireColumn.Hidden, 3, 5)
End With
End Sub

bonne journée
@+
 
Re : Modification automatique de l'apparence d'un bouton

Bonjour à tous et encore merci pour votre aide.

J'ai réussi grâce à vous à appliquer la modification automatique du texte et de la couleur du bouton "Afficher/masquer tout". Le fonctionnement de ce bouton est donc parfait : quand on affiche ou on masque une ou plusieurs colonnes, il change automatiquement de texte et de couleur.

Malheureusement, je ne parviens pas à appliquer le même fonctionnement aux autres boutons. Je voudrais que les boutons "Adresse 1" et "Adresse 2" changent aussi de couleur en fonction de l'affichage de la colonne correspondante.
J'ai essayé de réutiliser le code du bouton "Afficher/masquer tout", mais le résultat obtenu n'est pas satisfaisant.

Je vous joins à nouveau mon fichier dans l'état d'avancement auquel je suis arrivé.

Merci d'avance de vos propositions !
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
987
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…