Afficher / Masquer des colonnes avec le même bouton

Feitan

XLDnaute Nouveau
Bonjour tout le monde,

Ma problématique est simple : J'aimerais une macro qui me permette d'afficher ou de cacher les colonnes d'une feuille (en l'occurence de I à O inclus).

Ce qui serait génial et c'est là que je n'y arrive pas, c'est que je vais relier cette macro à un bouton, et en fait que l'utilisateur se serve du meme bouton pour afficher/ cacher.

En gros, la macro détecte si les colonnes sont affichées ou cachées et effectue l'action inverse en fonction : Si les colonnes sont affichées, appuyer sur le bouton (et donc enclencher la macro) les masque; si les colonnes sont masquées, appuyer sur le même bouton (et donc enclencher la même macro) les affiche.

Cela m'aiderait beaucoup ;)

Merci énormément d'avance,
 

Staple1600

XLDnaute Barbatruc
Re : Afficher / Masquer des colonnes avec le même bouton

Bonsoir

Pour saluer Hasco ;) (et pour le fun )

Code:
Private Sub cmdCacherAfficher_Click()
Dim s$: s = " colonnes I:0"
    With Range("I1:O1").EntireColumn
    .Hidden = Not .Hidden
    cmdCacherAfficher.Caption = IIf(.Hidden, "Afficher" & s, "Cacher" & s)
    End With
End Sub
 

gillmo

XLDnaute Occasionnel
Re : Afficher / Masquer des colonnes avec le même bouton

bonjour,

j'essaye d'utiliser la macrofaite par Hasco mais je n'arrive pas à relier la macro au bouton de commande dans mon fichier.

Quand je regarde dans le fichier d'Hasco, je ne vois pas le lien entre la macro et le bouton

Pouvez vous me dire comment faire

merci à tous
 

Staple1600

XLDnaute Barbatruc
Re : Afficher / Masquer des colonnes avec le même bouton

Bonsoir gilmo, Hasco

Le code du bouton se trouve dans la feuille où niche le bouton.

(Clic-droit sur l'onglet subséquent -> Visualiser le code )

Mais ce sont des choses privées entre Hasco et sa feuille ...
(Private matters comme disent les sujets d'Elisabeth )

Cela ne nous regarde pas.
 
Dernière édition:

gillmo

XLDnaute Occasionnel
Re : Afficher / Masquer des colonnes avec le même bouton

comment faire alors si cela est privé

j'essaye dans tous les sens de faire fonctionner mais sans réussite

Est ce qu'il faut avoir une version particulière d'excel sachant que moi j'ai excel 2003.
 

Staple1600

XLDnaute Barbatruc
Re : Afficher / Masquer des colonnes avec le même bouton

Re


Il fallait voir ici une sorte d'humour ;)

Je redeviens pragmatique.
VB:
Sub cmdCacherAfficher_Click()
 Dim s$: s = " colonnes I:0" 
    With Range("I1:O1").EntireColumn
.Hidden = Not .Hidden 
    cmdCacherAfficher.Caption = IIf(.Hidden, "Afficher" & s, "Cacher" & s)     
End With 
End Sub

Je viens de rendre cette macro publique
(donc visible dans Outils/Macros)

Dans Lien supprimé

Elle était privée ;)
 
Dernière édition:

Ilino

XLDnaute Barbatruc
Re : Afficher / Masquer des colonnes avec le même bouton

Bonjour Forum
je suis très intéressé par ce code
Code:
Sub cmdCacherAfficher_Click()
 Const s$ = " colonnes I:0" 
    With Range("I1:O1").EntireColumn
.Hidden = Not .Hidden 
    cmdCacherAfficher.Caption = IIf(.Hidden, "Afficher" & s, "Cacher" & s)     
End With 
End Sub
et dans le cas ou les colonnes I&O sont verrouillées ça ne marche pas ???
Merci
 
G

Guest

Guest
Re : Afficher / Masquer des colonnes avec le même bouton

Bonjour,

C'est une question ou une affirmation.

Dans les deux cas as-tu essayer? (ça c'est une question)

As-tu fais des recherches sur le forum pour savoir comment déprotéger/reprotéger une feuille par VBA? (Une deuxième question)

A+
 

Efgé

XLDnaute Barbatruc
Re : Afficher / Masquer des colonnes avec le même bouton

Bonjour Ilino, le fil,
Si tu veux dire que la feuille est protégée, il faut la déprotéger.
VB:
Sub cmdCacherAfficher_Click()
Const s$ = " colonnes I:0"
ActiveSheet.Unprotect "toto"
With Range("I1:O1").EntireColumn
    .Hidden = Not .Hidden
    cmdCacherAfficher.Caption = IIf(.Hidden, "Afficher" & s, "Cacher" & s)
End With
ActiveSheet.Protect "toto"
End Sub
Le "tot" n'est utile que si il y a un mot de passe

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 236
Messages
2 086 477
Membres
103 228
dernier inscrit
malik832