Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Masquer et afficher des onglets en fonction du préfixe

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

  • Afficher et masquer.xlsxm.xlsx
    11.5 KB · Affichages: 65

Staple1600

XLDnaute Barbatruc
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:

gvives

XLDnaute Occasionnel
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
 

job75

XLDnaute Barbatruc
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

  • Afficher et masquer(1).xls
    65.5 KB · Affichages: 76

job75

XLDnaute Barbatruc
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

  • Afficher et masquer(2).xls
    68.5 KB · Affichages: 59
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…