Masquer et afficher des onglets en fonction du préfixe

  • Initiateur de la discussion Initiateur de la discussion gvives
  • Date de début Date de début

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 !

gvives

XLDnaute Occasionnel
Bonjour à tous et bonne année,

Je cherche a créer plusieurs macros en VBA et les affecter à des boutons pour me permettre de réaliser la chose suivante :

Par exemple un classeur excel composé de 8 onglets suivants :

A1 ; A2 ; A3 ; B1 ; B2 ; B3 ; C1 et C2

Je cherche à créer les boutons suivants :

Bouton 1 : Masquer tous les onglets commençant par A
Bouton 2 : Afficher tous les onglets commençant par A
Bouton 3 : Masquer tous les onglets commençant par B
Bouton 4 : Afficher tous les onglets commençant par B
Bouton 5 : Masquer tous les onglets commençant par C
Bouton 6 : Afficher tous les onglets commençant par C

De cette façon un utilisateurs n'utilisant que les onglets A peut masquer les onglets B et C en cliquant sur le bouton 3 et 5, un utilisateur n'utilisant que les onglets B peut masquer les onglets A et C en cliquant sur les boutons 1 et 5.

Merci beaucoup pour votre aide.
 

Pièces jointes

Re : Masquer et afficher des onglets en fonction du préfixe

Bonsoir Gérard (Comment vont les filles d’à coté?)

Bienvenue sur le Forum


Fais un choix camarade 😉

Avec macros: c'est xls ou xlsm mais pas xlsx et encore moins xlsm.xlsx 😉

EDITION: un exemple de solution sommaire
Code:
Private Sub m(x$)
Dim s As Worksheet
For Each s In Worksheets
s.Visible = IIf(Left(s.Name, 1) = x, xlSheetHidden, xlSheetVisible)
Next
End Sub
Exemple pour préfixe A
VB:
Sub masqueA() ' pour tester lancer cette macro
m "A" ' ou tu mets cette seule ligne code dans le code du bouton1 (et tu adaptes pour les autres boutons)
End Sub

EDITION: Salut job75, meilleurs voeux également 😉
 
Dernière édition:
Re : Masquer et afficher des onglets en fonction du préfixe

Salut Staple1600 !! Les filles d'a côté vont très bien je te rassure 😉 !! (mais moi c'est Gaëtan mdr)

Ta solution est parfaite à l'exception d'une chose, lorsque je clic sur le bouton 1 et ensuite sur le bouton 3 je souhaite masquer à la fois les onglets A et les onglets B pour ne laisser que les onglets C.

Le problème ici c'est que lorsque je clic successivement sur le bouton 1 puis le bouton 3 les onglets A réapparaissent et je me retrouve avec les onglets A et C (Je sais c'est un peu folclo mon truc mais c'est vraiment nécessaire dans ma situation)...

Je te remercie beaucoup pour ton aide 😉
 
Re : Masquer et afficher des onglets en fonction du préfixe

Bonjour gvives, salut Jean-Marie, mes meilleurs voeux pour 2012 🙂

Affecter aux 6 boutons (formes) cette macro :

Code:
Sub AfficheMasque()
Dim txt As String, test As Boolean, der As String, s As Object
txt = Trim(ActiveSheet.DrawingObjects(Application.Caller).Text)
test = txt Like "Affiche*"
der = Right(txt, 1)
For Each s In Sheets
  If s.Name <> "Accueil" And Left(s.Name, 1) = der Then s.Visible = test
Next
End Sub
Fichier .xls joint, la macro est dans Module1 (Alt+F11).

La feuille des boutons est nommée Accueil : c'est la seule à ne jamais être masquée.

A+
 

Pièces jointes

Re : Masquer et afficher des onglets en fonction du préfixe

Re,

3 boutons c'est peut-être mieux que 6, non ?

La macro :

Code:
Sub AfficheMasque()
Dim der As String, test As Boolean, s As Object
With ActiveSheet.DrawingObjects(Application.Caller)
  der = Right(Trim(.Text), 1)
  test = Trim(.Text) Like "Affiche*"
  .Text = Replace(.Text, IIf(test, "Affiche", "Masque"), IIf(test, "Masque", "Affiche"))
End With
With ActiveSheet.Shapes(Application.Caller)
  .Fill.ForeColor.RGB = IIf(test, RGB(155, 187, 89), RGB(79, 129, 189))
  .Line.ForeColor.RGB = IIf(test, RGB(113, 137, 63), RGB(56, 93, 138))
End With
For Each s In Sheets
  If s.Name <> "Accueil" And Left(s.Name, 1) = der Then s.Visible = test
Next
End Sub
Fichier (2).

A+
 

Pièces jointes

Dernière édition:
- 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
4
Affichages
144
Réponses
32
Affichages
975
Retour