Pour masquer ou afficher plusieurs onglets j'ai 2 procédures que je souhaite regrouper en 1 seule.
Les voici :
1/Masquer :
For c5i = 1 To Sheets.Count
If Left(Sheets(c5i).Name, 4) = "C05_" Then Sheets(c5i).Visible = False
Next c5i
Next
2/Afficher :
For c5i = 1 To Sheets.Count
If Left(Sheets(c5i).Name, 4) = "C05_" Then Sheets(c5i).Visible = True
Next c5i
Next
Trois jours que je parcours le net...
Je trouve des demi-solutions.
Sub HideShow()
Dim i%: Application.ScreenUpdating = 0
For i = 1 To Worksheets.Count
With Worksheets(i)
If Left$(.Name, 4) = "C05_" Then .Visible = Not .Visible
End With
Next i
End Sub
Bonsoir, en VBA comment afficher/masquer toutes les feuilles d'un classeur sauf celle nommée :"principale"? merci de votre aide perdinch
www.excel-downloads.com
Et ci-dessous, macro adaptée, 11 ans après, pour la question de ce fil ( mais sans le If, ce qui fait du code un chouia plus court)
(mais mieux vaut que toutes les feuilles ne commencent pas par CO5)
VB:
Sub MasquerAfficher()
Dim c As Worksheet
On Error Resume Next
For Each c In Worksheets
c.Visible = Left(c.Name, 4) = "C05_" = Not c.Visible
Next
End Sub
si tu es sûr que les feuilles "C05_" seront toujours à droite de la feuille "P05",
alors tu peux accélérer la macro en évitant le test des 4 premières feuilles :
remplace For i = 1 To Worksheets.Count par For i = 5 To Worksheets.Count
mais tu dois commencer par 5, au cas où il n'y aurait aucune feuille "C05_",
car avec 6, ça planterait, la 6ème feuille n'existant pas.
Sub HideShow()
Dim i%: Application.ScreenUpdating = 0
For i = 1 To Worksheets.Count
With Worksheets(i)
If Left$(.Name, 4) = "C05_" Then .Visible = Not .Visible
End With
Next i
End Sub
Bonsoir, en VBA comment afficher/masquer toutes les feuilles d'un classeur sauf celle nommée :"principale"? merci de votre aide perdinch
www.excel-downloads.com
Et ci-dessous, macro adaptée, 11 ans après, pour la question de ce fil ( mais sans le If, ce qui fait du code un chouia plus court)
(mais mieux vaut que toutes les feuilles ne commencent pas par CO5)
VB:
Sub MasquerAfficher()
Dim c As Worksheet
On Error Resume Next
For Each c In Worksheets
c.Visible = Left(c.Name, 4) = "C05_" = Not c.Visible
Next
End Sub
[/code
[/QUOTE]
Salut & merci !😇
Question existentielle
Pourquoi créer des feuilles dans un classeur si c'est pour les masquer ensuite ?
Vaste débat
(mais c'est un sujet qui ne tombera jamais au bac )
Question existentielle
Pourquoi créer des feuilles dans un classeur si c'est pour les masquer ensuite ?
Vaste débat
(mais c'est un sujet qui ne tombera jamais au bac )
Pour plusieurs raisons :
1/ quand il y a beaucoup de feuilles c'est plus simple de cacher celles dont on n'a pas besoin
2/ Epater les copains
3/ Frustrer les curieux
=>soan
Merci pour l'info
C'est la faute à ma mode de navigation "raw and wild" sur XLD
(si tu vois de quoi je veux parler)
Dans ce mode, je ne vois pas ce "Cliquez pour Agrandir"