You are currently viewing Afficher ou Masquer tous les onglets dans Excel ?

Afficher ou Masquer tous les onglets dans Excel ?

Un client m’a posé la question suivante il y a quelques semaines :

“J’utilise un classeur avec de très nombreux onglets que je masque car ils ne doivent pas être visibles. Mais parfois j’ai besoin de les faire réapparaître pour effectuer quelques modifications mais c’est super long… Je dois faire ça onglet par onglet. Idem pour masquer tous les onglets d’un coup… N’y a t-il pas un moyen d’aller plus vite ?”

C’est vrai que Excel n’a pas pour le moment de fonction native pour faire ça. On va devoir passer par un petit peu de code VBA pour ça.

Afficher l’onglet Développeur

Pour travailler dans l’éditeur Visual Basic, rendez-vous dans le menu Outil / Macro / Visual Basic Editor.

Vous pouvez aussi cliquer directement sur le bouton Visual Basic de l’onglet Développeur (si vous l’avez affiché).

Créer la macro pour Afficher tous les onglets

Ouvrez votre éditeur Visual Basic et copiez collez ces quelques lignes de code dans ThisWorkbook .

Ce code passe en revue toutes les feuilles du classeur et passe le statut “visible” à “true” (vrai).

 Sub AfficheOnglets()
 Dim Onglets As Worksheet
 For Each Onglets In Worksheets
 Onglets.Visible = True
 Next Onglets
 End Sub 
Le code de la macro pour afficher tous les onglets.

Créer la macro pour Masquer tous les onglets

On pourrait être tenté de prendre le même code et de changer la valeur True (vrai) par False (faux). Mais vous allez prendre une belle erreur car, dans Excel, il n’est pas possible de masquer TOUS les onglets. Il doit y en avoir au minimum UN d’affiché.

Ouvrez votre éditeur Visual Basic et ajoutez ce code dans ThisWorkbook .

Ce second code passe en revue toutes les feuilles du classeur et passe le statut “visible” à “False” (FAUX) SAUF pour la feuille nommée Feuil1. Evidemment il faudra adapter le code pour mettre le nom de votre première feuille, celle qui ne devra jamais être masquée.

 Sub MasqueOnglets()
 Dim Onglets As Worksheet
 For Each Onglets In ThisWorkbook.Worksheets
 With Onglets
 If Not .Name = "Feuil1" Then .Visible = False
 End With
 Next
 End Sub 
Le code de la macro pour fermer tous les onglets. Pensez à mettre le nom de VOTRE feuille.

Le code complet pour les deux macros est donc :

 Sub AfficheOnglets()
 Dim Onglets As Worksheet
 For Each Onglets In Worksheets
 Onglets.Visible = True
 Next Onglets
 End Sub

 Sub MasqueOnglets()
 Dim Onglets As Worksheet
 For Each Onglets In Worksheets
 With Onglets
 If Not .Name = "Feuil1" Then .Visible = False
 End With
 Next
 End Sub 

Si vous avez trouvé une faute d’orthographe, vous pouvez m’en informer en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée .

Laisser un commentaire