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
 

Mastergonk

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

Bonjour Jean-Marcel,
et surtout pardon de ne pas t'avoir fait de retour sur ta réponse plus tôt.

En fait, je ne maîtrise pas vraiment le type de boutons que tu as inséré dans le fichier. C'est pour cette raison que j'ai préféré continuer ma première démarche.
Mais s'il s'avère que seule ta technique permet de faire ce que je cherche à obtenir, je me repencherai dessus.

Merci encore.
 

pierrejean

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

Re

Voici une proposition avec tes boutons
Note que chaque bouton doit avoir sa macro (elle lui fait reference et le modifie)
Toutefois le resultat n'est pas parfait puisque le bouton tout interfere sur les 2 autres
 

Pièces jointes

  • fichier test_b.zip
    13.3 KB · Affichages: 34
  • fichier test_b.zip
    13.3 KB · Affichages: 38
  • fichier test_b.zip
    13.3 KB · Affichages: 36

Mastergonk

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

Merci Pierre-Jean,
ton fichier m'a permis de bien avancer.

Quelqu'un saurait-il comment lier l'affichage du bouton à l'état de la colonne ?

Cela permettrait d'afficher le bouton correctement quelle que soit la manière dont on a masqué la colonne.
Ainsi, si je masque toutes les colonnes avec le bouton "Tout masquer", tous les autres boutons changeront de couleur.
Ce système permettrait de savoir très précisément quelles sont les colonnes affichées à la simple vue des boutons correspondant.

Encore merci d'avance !
 

Mastergonk

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

Bonjour Pierre-Jean,
ton dernier envoi m'a permis de bien avancer.
J'ai pu créer plusieurs boutons et les codes correspondants en me basant sur celui que tu m'as envoyé.
Le problème est que je me retrouve bloqué lorsque je cherche à créer mon 6ème bouton et le code qui va avec. La manip qui jusque là fonctionnait parfaitement ne veut plus s'appliquer.
Dans le fichier joint, tu verras que les boutons Adresse1 à Mail fonctionnent très bien, mais le bouton Premium ne fonctionne pas alors que j'ai suivi la même procédure pour créer le code correspondant.
Le bouton "Tout Afficher/masquer" fonctionnait également jusqu'à ce que je créé le code du bouton premium.

Merci des éventuels conseils que tu pourrais me donner.
 

Pièces jointes

  • CopieFichier Premium Adtim 091110.zip
    27.6 KB · Affichages: 28

pierrejean

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

Re

Pas de secret:
Verifie les noms des boutons et affecte leur les bonnes macros et tout fonctionnera
C'est un travail que tu peux faire toi-meme
Pour ma part j'ai d'autres travaux sur l'etabli
 

Mastergonk

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

Merci de tes conseils Pierrejean.
Je viens d'y repasser du temps mais je ne vois toujours pas où se situe le problème.
Les macros semblent bien affectées aux bons boutons.
J'ai repris exactement le même code d'un bouton à l'autre et j'ai appliqué les mêmes modifications qu'aux boutons précédents.
Ce qui a fonctionné pour 4 ou 5 boutons ne fonctionne plus au 6ème...
 

Mastergonk

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

Bonjour Lii,

Je te remercie pour ton envoi. Ce fichier m'a permis de repartir sur une nouvelle piste que je semble mieux maîtriser.

Je parviens maintenant à ajouter des boutons et à leur affecter une macro qui me permet d'afficher ou masquer chaque colonne.

Toutefois, je ne parviens pas à intégrer ces colonnes au fonctionnement du bouton "Tout afficher / Tout masquer".
En effet, je pensais qu'il suffisait de changer la dernière valeur dans la ligne : " For Vn = 12 To 22" pour intégrer mes boutons 23 à 27 au fonctionnement général.
Malheureusement quand je change cette valeur, j'obtiens un message d'erreur.

Qu'en penses-tu ?
Merci d'avance
 

Lii

XLDnaute Impliqué
Re : Modification automatique de l'apparence d'un bouton

Bon soir,

Les macros associées aux boutons ont la même structure. Il suffit d'adapter 2 paramètres :
- le nom de la macro (en bleu)
- la lettre de la colonne concernée (en rouge)
Code:
'pour un nouveau bouton
Sub [B][COLOR="Blue"]Bouton23[/COLOR][/B]_QuandClic() [COLOR="DarkGreen"]'macro affectée au bouton nommé[/COLOR] [B][COLOR="Red"][COLOR="Sienna"]Bouton 23 [/COLOR][/COLOR][/B]
  [[COLOR="Red"][B]R[/B][/COLOR]5].EntireColumn.Hidden = Not [[B][COLOR="red"]R[/COLOR][/B]5].EntireColumn.Hidden
  Vx = [[COLOR="red"][B]R[/B][/COLOR]5].EntireColumn.Hidden  [COLOR="DarkGreen"]'colonne concernée par ce bouton[/COLOR]
  ActiveSheet.Shapes("[B][COLOR="Sienna"]Bouton 23[/COLOR][/B]").TextFrame.Characters.Font.ColorIndex = IIf(Vx = True, 5, 3)
  With ActiveSheet.Shapes("Bouton 31").TextFrame.Characters
    .Text = IIf(Vx = True, "Afficher Tout", "Masquer Tout")
    .Font.ColorIndex = IIf(Vx = True, 5, 3)
  End With
  [A1].Select
End Sub
Attention : bien contrôler le nom du bouton, Bouton 23 n'est pas Bouton23 !
 

Mastergonk

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

Merci pour ta réponse Lii.
J'ai essayé de suivre tes conseils mais même si les macros de mes boutons sont toutes construites sur le même principe, j'obtiens quand même des messages d'erreurs.
En plus, j'ai des incohérences sur le fonctionnement des boutons.
Pour bien comprendre d'où peut venir le problème, je me permets de t'envoyer mon fichier tel qu'il est maintenant.
Si tu peux résoudre mon problème, c'est super, mais si tu pouvais m'expliquer d'où vient mon erreur cela m'éviterait de t'embêter à chaque fois.
Merci encore pour ton aide !
 

Pièces jointes

  • AfficherMasquerColonnes avancé.zip
    19.8 KB · Affichages: 33
  • AfficherMasquerColonnes avancé.zip
    19.8 KB · Affichages: 36
  • AfficherMasquerColonnes avancé.zip
    19.8 KB · Affichages: 34

Mastergonk

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

Bonjour
Un grand merci !
Tu as résolu presque tous mes messages d'erreur ! :)
En effet, je n'avais pas vu que chaque bouton avait un numéro "en dur" et que c'était à partir de ce numéro que les macros fonctionnaient.
Honte à moi... :eek:

Une dernière chose : tous mes boutons fonctionnent, à l'exception de celui qui permet de tout afficher et de tout masquer.
Lorsque je clique sur ce bouton, j'obtiens une erreur d'exécution qui vient a priori de cette ligne dans la macro :
ActiveSheet.Shapes("Bouton " & Vn).TextFrame.Characters.Font.ColorIndex = IIf(VCoul = 3, 5, 3)
Je te joins une dernière fois mon fichier.

Je te remercie encore de ton aide !
 

Pièces jointes

  • AfficherMasquerColonnes avancé1.zip
    20.5 KB · Affichages: 22

Discussions similaires

Réponses
24
Affichages
432

Statistiques des forums

Discussions
312 331
Messages
2 087 359
Membres
103 528
dernier inscrit
hplus