Modification automatique de l'apparence d'un bouton

Mastergonk

XLDnaute Nouveau
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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Mastergonk

XLDnaute Nouveau
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. :confused: :eek:
Plutôt que d'essayer de décrire mon fichier, je vous le poste. :D

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

  • TestFichier Premium.xls
    47 KB · Affichages: 58

Pierrot93

XLDnaute Barbatruc
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

  • classeur1.zip
    11.4 KB · Affichages: 73
  • classeur1.zip
    11.4 KB · Affichages: 72
  • classeur1.zip
    11.4 KB · Affichages: 69

Mastergonk

XLDnaute Nouveau
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 ??? :eek:
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

Pierrot93

XLDnaute Barbatruc
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:

Pierrot93

XLDnaute Barbatruc
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
@+
 

Mastergonk

XLDnaute Nouveau
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

  • fichier test.zip
    14.3 KB · Affichages: 34
  • fichier test.zip
    14.3 KB · Affichages: 31
  • fichier test.zip
    14.3 KB · Affichages: 27

Discussions similaires

Réponses
24
Affichages
413

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87