Si votre classeur Excel comporte un grand nombre de feuilles de calcul, et que vous souhaitez limiter l’affichage à quelques feuilles pour l’utilisateur final, il peut être fastidieux d’avoir à afficher/masquer manuellement (clic droit sur un onglet, puis Afficher ou Masquer).
Par exemple, vous avez créé un tableau de bord dans une feuille de synthèse à partir de tableaux de données, et vous souhaitez masquer ces données pour rendre votre présentation plus claire visuellement.
Voici une macro qui permet d’afficher ou masquer automatiquement les onglets, avec la possibilité de conserver les feuilles à afficher en permanence pour l’utilisateur.
Voici le code à insérer dans un module de l’éditeur de macro (raccourci Alt+F11) :
Option Explicit Private Sub DevVisibleSheets(Optional var) ' Afficher ou masquer les feuilles de calcul ' Feuilles de présentation exclues : ' - Feuil1 = Instructions ' - Feuil2 = Synthèse BU ' - Feuil3 = Synthèse Clients Dim sh As Worksheet, act_sh As Worksheet Dim bVisible As Boolean On Error Resume Next Set act_sh = ActiveSheet bVisible = Sheets("Feuil6").Visible If Err <> 0 Then bVisible = False For Each sh In ThisWorkbook.Sheets If sh.Name <> "Feuil1" And _ sh.Name <> "Feuil2" And _ sh.Name <> "Feuil3" Then sh.Visible = Not bVisible End If Next sh act_sh.Select On Error GoTo 0 End Sub Sub AfficherMasquerFeuillesCalcul() ' Afficher ou masquer les feuilles de calcul Call DevVisibleSheets End Sub
Vous remarquerez que les 3 feuilles à afficher en permanence se nomment : “Feuil1”, “Feuil2” et “Feuil3”. Une quatrième feuille nommée “Feuil6” dans le code, doit faire partie des onglets à masquer.
Enfin, exécutez la macro AfficherMasquerFeuillesCalcul (raccourci Alt+F8 puis bouton Exécuter).
Le résultat dépend de l’affichage initial. Par exemple, si “Feuil6” était masquée initialement, celle-ci ainsi que toutes les autres feuilles masquées vont s’afficher. A l’inverse, si “Feuil6” était visible initialement, celle-ci ainsi que toutes les autres feuilles affichées vont disparaître à l’écran, à l’exception des feuilles utilisateur “Feuil1” à “Feuil3”.
Et voilà !