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à !
