Créer un même bouton Afficher/Masquer certaines Feuilles

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

un internaute

XLDnaute Impliqué
Bonjour le forum,
Comme dit dans le titre je veux créer un même bouton qui Affiche & Masque certaines feuilles

Macro Masquer

Sub Masquer() For Each Sh In Array("Toto1", "Toto2",("Toto3")
Sheets(Sh).Visible = xlVeryHidden
Next Sh
End Sub

Merci d'avance
Bien cordialement
 
Bonjour le forum,
Je n'ai pu répondre plutôt, toutes mes excuses.
J'aimerais le faire comme la macro ci-dessous
Même bouton Afficher/Masquer (exemple ci-dessous) mais je ne sais pas le faire!!!

Sub AfficherMasquerOnglets()
Dim Ws As Worksheet
Dim Sh As Shape
Dim Nom As String

Application.ScreenUpdating = False
Set Sh = ActiveSheet.Shapes(Application.Caller)
With Sh.TextFrame.Characters
'On compare les 8 caractères de gauche(Left)en Majuscule(UCase)du Texte du bouton avec les caractères en Majuscule(UCase)du mot "protéger".
If UCase(Left(.Text, 8)) = UCase("protéger") Then
.Text = "Déprotéger Onglet"
For Each Ws In Worksheets
Ws.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next Ws
Else
For Each Ws In Worksheets
Ws.Unprotect
Next Ws
.Text = "Protéger Onglet"
End If
End With

End Sub


J'ai fait manuellement (nouvelle macro)

Sub MasquerOnglets()
Sheets(Array("Toto1", "Toto2")).Select
Sheets("Toto1", "Toto2").Activate
ActiveWindow.SelectedSheets.Visible = False
End Sub

Sub AfficherOnglets()
Sheets("toto1").Visible = True
Sheets("Toto2").Visible = True
End Sub

Où faut-il insérer les lignes des 2 macros faites manuellement?
Merci d'avance pour vos éventuels retour
Bien cordialement
 
Bonsoir à tous,
Voilà ce que je voulais
Merci à toi M12

Sub AfficherMasquerOnglets()
Dim Ws As Worksheet, Feuille As Worksheet
Dim LesFeuilles, Affiche As Integer
Affiche = xlSheetVeryHidden
Set Ws = ActiveSheet
Application.ScreenUpdating = False
LesFeuilles = Array("Toto1", "Toto2", "Toto3")
If Sheets(LesFeuilles(0)).Visible = xlSheetVeryHidden Then Affiche = True
For Each Feuille In Sheets(LesFeuilles)
With Feuille
.Unprotect
.Visible = Affiche
.Protect
End With
Next Feuille
End Sub

Bonne fin de soirée à tous
Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
211
Réponses
3
Affichages
298
Réponses
6
Affichages
626
Retour