Combiner deux macros Afficher/Masquer onglets en un seul bouton

bast0504

XLDnaute Occasionnel
Bonjour

Dans le fichier ci joint, j'ai un bouton qui permet d'afficher tous les onglets du classeur et un bouton qui permet de masquer tous les onglets sauf un qui est 'Analysis'.

Comment je pourrais combiner les deux boutons en un seul, qui me permettrait de faire les deux opérations pré-citer avec un changement de l'intitulé du bouton qui serait l'inverse de l'opération faite

Si j'ai masquer je veux que le bouton affiche "afficher" et vice versa

Merci
 

Pièces jointes

  • Cacher Afficher les onglets.xls
    33 KB · Affichages: 79

Robert

XLDnaute Barbatruc
Repose en paix
Re : Combiner deux macros Afficher/Masquer onglets en un seul bouton

Bonjour bast, bonjour le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :
Code:
Private Sub CommandButton1_Click()
Dim o As Object 'déclare la varialbe o (Onglet)

Application.ScreenUpdating = False 'masque les changements à l'écran
ActiveCell.Select 'enlève le focus au bouton
If CommandButton1.Caption = "Afficher tous les onglets" Then 'condition : si le texte du bouton est "Afficher tous les onglets"
    CommandButton1.Caption = "Masquer tous les onglets sauf" & Chr(13) & "Analysis" 'redéfinit la texte du bouton
    For Each o In Sheets 'boucle sur tous les onglets du classeur
        o.Visible = True 'affiche l'onglet
    Next o 'prochain onglet de la boucle
Else 'sinon
    CommandButton1.Caption = "Afficher tous les onglets" 'redéfinit le texte du bouton
    For Each o In Sheets 'boucle sur tous les onglets du classeur
        If Not o.Name = "Analysis" Then o.Visible = False 'si le nom de l'onglet est différent de "Analysis", masque l'onglet
    Next o 'prochain onglet de la boucle
End If 'fin de la condition
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub
Le fichier :
 

Pièces jointes

  • Bast_v01.xls
    43.5 KB · Affichages: 101

bast0504

XLDnaute Occasionnel
Re : Combiner deux macros Afficher/Masquer onglets en un seul bouton

Bonjour

Merci Robert pour ta réponse

Juste deux questions:

- Quel est l'intérêt de la partie "Private Sub" Est ce que le but est de cacher le "code", je ne le retrouve pas quand je veux le rattacher un bouton formulaire.

- De plus le bouton que tu as choisi n'est pas un bouton formulaire, n'est ce pas ?

Merci encore
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Combiner deux macros Afficher/Masquer onglets en un seul bouton

Bonjour le fil, bonjour le forum,

Bonjour

Merci Robert pour ta réponse

Juste deux questions:

- Quel est l'intérêt de la partie "Private Sub" Est ce que le but est de cacher le "code", je ne le retrouve pas quand je veux le rattacher un bouton formulaire.

- De plus le bouton que tu as choisi n'est pas un bouton formulaire, n'est ce pas ?

Merci encore

je vais répondre à tes question dans le désordre...
Je n'utilise pratiquement jamais les outils de la barre d'outils Formulaire car je les trouve moins souple au niveau du codage VBA. Je n'utilise que des outils de la barre d'outil Boîte à outil Contrôle.

Dès que lon place un bouton de cette barre d'outils sur l'onglet on passe en mode création et en double-cliquant dessus on atteint le code vide :
Code:
Private Sub CommandButton1_Click()

End Sub
Pourquoi Private ? je pense que c'est parce qu'il peut y avoir plusieurs CommandButton1 (dans des onglets différents) et ça évite des bugs...
 

jearau

XLDnaute Nouveau
Re : Combiner deux macros Afficher/Masquer onglets en un seul bouton

Bonjour,

débutant sur excel et en macro:

j'aurais besoin d'ajouter un mot de passe pour demasquer tous les onglets et que par defaut tous les onglets soient masqués à l'ouverture du document.
si quelqu'un pouvait m'aider .

merci d'avance.
 

Discussions similaires

Réponses
4
Affichages
563

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé