Démasquer tous les onglets rapidement

Résolu/Fermé
Thierry_56 - 4 mars 2021 à 08:15
Le Pingou
Messages postés
11111
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
11 août 2022
- 5 mars 2021 à 11:59
Bonjour, j'ai 52 onglets masqués pour 52 semaines. Quand tous les onglets sont ouverts, je peux les sélectionner en groupe, clic droit, masquer et ça me convient parfaitement. Par contre, quand je veux faire l'inverse : ouvrir ces 52 onglets en même temps, je n'ai pas trouvé l'astuce pour le faire rapidement à part le faire manuellement (très long) ou avec Vba. Auriez-vous une solution plus simple ? Merci

6 réponses

Le Pingou
Messages postés
11111
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
11 août 2022
1 299
Modifié le 4 mars 2021 à 09:50
Bonjour,
Un petit code VBA
Sub AfficherSh() '***afficher les feuilles
For Each Sh In Worksheets
Sheets(Sh.Name).Visible = True
Next Sh
End Sub


Salutations.
Le Pingou
0
Bonjour, j'ai copié à l'identique ce code, je l'ai rattaché à un bouton mais ça ne fonctionne pas. Est ce que c'est plus simple de dire qu'on démasque tous les onglets commençant par S. Si Oui, pourriez vous adapter votre code svp. Merci beaucoup pour votre aide
0
Le Pingou
Messages postés
11111
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
11 août 2022
1 299
Modifié le 4 mars 2021 à 16:00
Bonjour,
Le code est correct . Pour voir se qui se passe on va ajouter un message:
 Sub AfficherSh() '***afficher les feuilles
For Each Sh In Worksheets
Sheets(Sh.Name).Visible = True
MsgBox " la feuille. " & Sh.Name & " est visible"
Next Sh
End Sub

Salutations.
Le Pingou
0
J'ai un message avec un triangle jaune et un point d'exclamation :
Erreur de compilation:
Variable non définie
voici mon code (je n'ai fait qu'un copier/coller) :

Sub AfficherSh() '***afficher les feuilles
For Each Sh In Worksheets
Sheets(Sh.Name).Visible = True
MsgBox " la feuille. " & Sh.Name & " est visible"
Next Sh
End Sub

Merci
0
ALS35
Messages postés
903
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
21 juin 2022
90
4 mars 2021 à 17:26
Bonjour,

Rajoute
Dim sh As Worksheet 

avant
For Each Sh In Worksheets


Cordialement
0
Thierry_56 > ALS35
Messages postés
903
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
21 juin 2022

4 mars 2021 à 17:39
non ça ne fonctionne toujours pas
je fais F5 sur le code.
Je vais passer en mode "membre" comme ça je pourrai faire un imprime écran pour vous montrer
0
Thierry-du-56
Messages postés
10
Date d'inscription
dimanche 16 juin 2013
Statut
Membre
Dernière intervention
4 mars 2021
> Thierry_56
4 mars 2021 à 17:41
0
Thierry-du-56
Messages postés
10
Date d'inscription
dimanche 16 juin 2013
Statut
Membre
Dernière intervention
4 mars 2021
> Thierry-du-56
Messages postés
10
Date d'inscription
dimanche 16 juin 2013
Statut
Membre
Dernière intervention
4 mars 2021

4 mars 2021 à 17:50
J'ai réussi à faire fonctionner les 2 codes de votre fichier
Pour ma part, j'ai 5 onglets que je dois garder ouverts en permanence mais ce que je souhaite c'est de pouvoir ouvrir tous mes onglets (avec true) qui commence par S (S01, S02, S03 etc...) en un clic idéalement et faire la manip inverse (avec false) pour les masquer...c'est sûrement possible
0
Le Pingou
Messages postés
11111
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
11 août 2022
1 299 > Thierry-du-56
Messages postés
10
Date d'inscription
dimanche 16 juin 2013
Statut
Membre
Dernière intervention
4 mars 2021

4 mars 2021 à 18:29
Bonjour Thierry_56 et ALS35,
C'est difficile de suivre le poste quant il ne se suive pas à cause de (Commenter)...!
Alors Thierry_56 on en est ou... sa marche Oui ou Non?
Salutations.
Le Pingou
0
Le Pingou
Messages postés
11111
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
11 août 2022
1 299
4 mars 2021 à 17:19
Bonjour,
Un petit exemple: https://www.cjoint.com/c/KCeqttFKrp0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai bien reçu votre fichier...c'est exactement ce que je souhaite faire mais même en cliquant sur votre fichier, ça ne fonctionne pas.
ça me dit : Impossible d'exécuter le code en mode arrêt
0
Le Pingou
Messages postés
11111
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
11 août 2022
1 299
5 mars 2021 à 09:35
Bonjour Thierry_56,
J'ai modifier le code pour prise en compte remarque du poste 10.
Remplacer "Sub MasquerSh() par:
Sub MasquerSh() '***afficher les feuilles
nsh = Array("S01", "S02", "S03", "S04", "S05")
For Each sh In Worksheets
in_nsh = False
For c = 0 To 4
If nsh(c) = sh.Name Then
in_nsh = True
Exit For
End If
Next c
If in_nsh = False Then
Sheets(sh.Name).Visible = fasle
' MsgBox " la feuille. " & sh.Name & " est masquée"
End If
Next sh
End Sub


0
eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022
7 105
Modifié le 5 mars 2021 à 10:39
Bonjour à tous,

fasle Le Pingou ? :-)

au plus court :
Sub AfficherSh() '***afficher les feuilles
Dim sh As Worksheet
For Each sh In Worksheets
If UCase(Left(sh.Name, 1)) = "S" Then sh.Visible = True
Next sh
End Sub

eric
0
Thierry_56 > eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022

5 mars 2021 à 11:35
Merci à vous deux. J'ai opté pour le code le plus court. J'en ai juste créé deux : masquer et afficher
J'ai juste eu à remplacer True par False
J'ai apprécié votre aide
Bonne journée
0
Le Pingou
Messages postés
11111
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
11 août 2022
1 299 > eriiic
Messages postés
24430
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
11 août 2022

5 mars 2021 à 11:59
Hello eriiic,
J'y avais pensé mais pas certain du nombres de feuilles alors j'ai un peu compliquer. Merci pour le 'false ' de trop.
Amicale salutations.
Le Pingou
0