Afficher / Masquer colonnes avec actionnement d'un seul bouton

  • Initiateur de la discussion Initiateur de la discussion nauj
  • 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 !

nauj

XLDnaute Junior
Bonjour Forum,
J'ai récupéré un code vba qui permet de masquer les colonnes et un autre qui permet de les réafficher. En revanche, ces deux codes sont associés à deux boutons distincts.
Je souhaiterais pouvoir "fusionner" ces deux codes vba en un seul et pouvoir l'associer à un bouton qui en l'actionnant, ça "masque ou affiche" à chaque clic.
Je vous remercie par avance de votre aide sur ce problème.
Cdt

Voici les codes :
Sub MasquerColonne()
Application.ScreenUpdating = False
Dim i As Long
For i = 16 To 6 Step -1
If Cells(4, i) = 0 Then
Columns(i).EntireColumn.Hidden = True
End If
Next
Application.ScreenUpdating = True
End Sub

Sub AfficherColonne()
Application.ScreenUpdating = False
Dim i As Long
For i = 6 To 16 Step 1
If Cells(4, i) = 0 Then
Columns(i).EntireColumn.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub
 
Re : Afficher / Masquer colonnes avec actionnement d'un seul bouton

Re,

remarque, tu peux peut être tout simplement le coder ainsi, à voir... :
Code:
Application.ScreenUpdating = False
Dim i As Long
For i = 6 To 16
    Columns(i).Hidden = Cells(4, i) = 0
Next
Application.ScreenUpdating = True
 
Re : Afficher / Masquer colonnes avec actionnement d'un seul bouton

Bonjour Pierrot93, Forum,
Je viens de tester ta proposition de code, effectivement, ça masque les colonnes en revanche ça ne les affiche pas lorsqu'on (re)clique sur le bouton.
Je vais jeter un coup d'oeil sur le fil que tu m'as proposé. La particularité de mon code est que les colonnes à masquer sont variables d'un fichier à un autre et que celui-ci sera diffusé à plusieurs dizaines de personnes.
Cdt
 
Re : Afficher / Masquer colonnes avec actionnement d'un seul bouton

Re,

remarque c'est normal puisque la valeur de la cellule n'a pas changée.... "Cells(4, i) = 0)"....

sinon le faire ainsi :
Code:
Application.ScreenUpdating = False
Dim i As Long
For i = 6 To 16
    Columns(i).Hidden = Not Columns(i).Hidden 
Next
Application.ScreenUpdating = True
 
Re : Afficher / Masquer colonnes avec actionnement d'un seul bouton

Pierrot93, Forum,
Ça ne fonctionne pas comme je le souhaite.
Pour être plus explicite, c'est un tableau générique composé de 10 colonnes qui sert à consolider des informations récupérées sur d'autres fichiers. Ces informations récupérées sont variables, elles peuvent être au nombre de 2 jusqu'à 10 selon le service concerné.
Pour ne pas laisser des colonnes vides lorsque le travail de récupération a été effectué, j'ai mis ce petit code qui permet de les masquer lorsque la ligne ("F4😛4") est égal à 0.
Je peux parfaitement laisser deux boutons, ça fonctionne bien mais pour une question d’esthétisme, le bouton unique serait un plus 🙂
Cdt
 
Re : Afficher / Masquer colonnes avec actionnement d'un seul bouton

Bonjour Nauj, Pierrot, bonjour le forum,

Peut être comme ça avec le code ci-dessous appliqué au bouton :
Code:
Private Sub CommandButton1_Click()
ActiveCell.Select 'enlève le focus au bouton
If Me.CommandButton1.Caption = "Afficher" Then 'condition si le texte du bouton est : "Afficher"
Me.CommandButton1.Caption = "Masquer" 'le texte devient "Masquer"
Me.CommandButton1.Accelerator = "M" 'le raccourci clavier devient "M"
Range("F1:P1").EntireColumn.Hidden = False 'les colonnes F à P sont affichées
Exit Sub 'sort de la procédure
End If 'fin de la condition
For x = 6 To 16 'boucle sur les colonnes 6 à 16 (F à P)
If Cells(4, x) = 0 Then 'condition : si la cellule de la ligne 4 vaut 0
Columns(x).Hidden = True 'masque la colonne
Me.CommandButton1.Caption = "Afficher" 'le texte du bouton devient "Affichier"
Me.CommandButton1.Accelerator = "A" 'le raccourci clavier du bouton devient "A"
End If 'fin de la condition
Next x 'prochaine colonne de la boucle
End Sub
 

Pièces jointes

Re : Afficher / Masquer colonnes avec actionnement d'un seul bouton

Bonjour Robert, Pierrot93, Forum,
Robert, ton code me va parfaitement !
Pierrot93, désolé de ne pas avoir été assez clair dans mon explication.
Merci à vous d'avoir consacré de votre temps au traitement de mon problème
A bientôt
 
- 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

Discussions similaires

Réponses
5
Affichages
836
Réponses
10
Affichages
630
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
690
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
431
Retour