Macro afficher et masquer certaines feuilles

anasimo

XLDnaute Occasionnel
Bonjour

Je cherche une macro qui me sert de masquer et afficher (avec 2 boutons: un pour afficher et l'autre pour masquer) certaines feuilles (exemple feuille 4,5,6,7,8 qui portent des noms différents)

Merci d'avance
 

Eric C

XLDnaute Barbatruc
Bonsoir le forum
Bonsoir anasimo

Une adaptation d'un ancien fichier de notre ami Papou-net ;) qui semble correspondre à ton attente et avec un seul bouton.
Bonne soirée à toutes & à tous
@+ Eric c
 

Pièces jointes

  • Affichage - Masquage certaines feuilles avec 1 seul bouton.xlsm
    23.7 KB · Affichages: 17

Eric C

XLDnaute Barbatruc
Re

Il te suffit de modifier les instructions dans le code :
VB:
If Not feuille Is Feuil1 And Not feuille Is Feuil4 And Not feuille Is Feuil5 And Not feuille Is Feuil6 _
        And Not feuille Is Feuil7 And Not feuille Is Feuil8 Then feuille.Visible = Affichage
Un impératif, ne pas oublier de laisser la FEUILLE1 dans la sélection car c'est elle qui comporte le Bouton de commande....

Sinon après il suffit de mettre un ARRAY pour les feuilles à masquer ... Attendons les pros....

@+ Eric c
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Une macro qui fait tout en un
1ère exécution: elle masque, seconde exécution: elle démasque
Donc besoin d'un seul bouton
VB:
Sub Macro_a_affecter_a_1_seul_Bouton()
'ici mettre le nom des feuilles selon les besoins
MasqueDemasque "Feuil1", "Feuil3"
'NB:Evidemment les feuilles doivent exister dans le classeur
'et les noms dans la macro doivent être rigoureusement identiques aux noms réels des feuilles
End Sub
Private Sub MasqueDemasque(ParamArray feuilles() As Variant)
Dim wb As Workbook, i&, vArr()
Application.ScreenUpdating = False
vArr = feuilles: Set wb = ActiveWorkbook
For i = 0 To UBound(vArr)
wb.Sheets(vArr(i)).Visible = Not wb.Sheets(vArr(i)).Visible
Next i
End Sub
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour le fil
Bonjour anasimo, bonjour Staple 1600

J'ai repris la version synthétisée de notre ami Staple 1600 ;) et y ai ajouté le bouton reverse.

Bonne journée à toutes & à tous
@+ Eric c
 

Pièces jointes

  • Affichage - Masquage certaines feuilles avec 1 seul bouton v.2.xlsm
    23.4 KB · Affichages: 12

xUpsilon

XLDnaute Accro
Bonjour le fil, Eric,

Pas sûr qu'un bouton reverse soit nécessaire. La ligne
VB:
wb.Sheets(vArr(i)).Visible = Not wb.Sheets(vArr(i)).Visible
te permet de récupérer la valeur et d'inverser directement, sans avoir besoin de passer par un "reverse" (enfin si j'ai bien compris ce que tu voulais dire par reverse haha)

Bonne continuation
 

Eric C

XLDnaute Barbatruc
Re,
Bonjour XUpsilon

J'ignore si j'ai employé le terme exact de ce bouton :cool: qui possède 2 captions ???? J'ai encore trop de choses à apprendre en Vba (et ailleurs aussi :D) et je me contente, en ce qui concerne Vba, de bidouiller ce que je trouve d'intéressant sur notre cher forum.
@+ Eric c
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth