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

XL 2010 Bouton VBA pour ouvrir plusieurs onglets

  • Initiateur de la discussion Initiateur de la discussion Orson83
  • 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 !

Orson83

XLDnaute Impliqué
Bonjour à tous,

Est-il possible de créer un bouton simple en VBA (pas d'image) qui permettrait d'afficher plusieurs onglets alors qu'à la base, ils sont tous masqués sauf la page d'accueil ?

Exemple :

- La Feuil 8 serait (nom : rapport financier ou Feuil8)
- La Feuil 12 serait (nom : bilan prévisionnel ou Feuil12)

Le code pourrait ressembler à cela ? (bien sûr mon exemple ci-dessous ne fonctionne pas)

Private Sub CommandButton1_Click()
For i = 2 To 4 Step 2
Worksheets("rapport financier ou Feuil8" & i).Visible = xlSheetVisible
Worksheets("bilan prévisionnel ou Feuil12" & i).Visible = xlSheetVisible
Next i
End Sub

Je joins un exemple dans ce post.

Merci pour votre aide.

François
 

Pièces jointes

Bonjour,
Tu y es presque mais tu confonds la référence à une feuille par son numéro d'ordre dans le classeur:
ThisWorkbook.Worksheets(i)
et la référence à une feuille par son nom:
ThisWorkbook.Worksheets("rapport financier")
Les 2 référence sont valides.

A noter que la référence:
ThisWorkbook.Worksheets("Feuil8")
n'est plus valide si tu as renommé la feuille, ce qui est manifestement le cas.

De plus si c'est pour démasquer 2 feuilles tu n'as pas besoin d'un boucle:
ThisWorkbook.Worksheets(2).Visible = xlSheetVisible
ThisWorkbook.Worksheets(4).Visible = xlSheetVisible

ou encore
ThisWorkbook.Worksheets("rapport financier").Visible = xlSheetVisible
ThisWorkbook.Worksheets("bilan prévisionnel").Visible = xlSheetVisible
 
Un petit complément pour dire que la qualification des objets est une chose importante en VBA.
Il faut toujours qualifier complètement les objets qu'on manipule, c'est pour ça que j'ai préfixé par ThisWorkbook.
Pourquoi ? Pour ne jamais avoir de surprise, si par exemple tu as plusieurs classeurs ouverts et que ta Macro, par manque de qualification, considère un autre classeur devenu actif plutôt que celui sur lequel tu voudrais qu'elle s'applique. Même chose au niveau des Ranges, qualifier par le Workbook et la Worksheet.

Si tu es dans le code du Workbook, sur le Workbook_Open(), où ta macro devrait probablement se trouver plutôt que sur un bouton, c'est mieux de remplacer la qualification ThisWorbook par Me.
ThisWorkbook.Worksheets("rapport financier").Visible = xlSheetVisible
devient:
Me.Worksheets("rapport financier").Visible = xlSheetVisible
 
Bonsoir Dudu2,

😳 Concrètement, est-il possible de corriger le fichier en PJ ?

J'ai inséré ton code dans ThisWorkbook mais pas de résultat.

Private Sub CommandButton1_Click()
For i = 2 To 4 Step 2
Me.Worksheets("rapport financier").Visible = xlSheetVisible
Me.Worksheets("bilan prévisionnel").Visible = xlSheetVisible
Next i
End Sub

N'est-il pas possible d'insérer le code dans la page qui contient le bouton (page Accueil), ceci afin de ne pas avoir à chercher où se trouve le code ?

Désolé pour mon faible niveau en VBA.

François
 

Pièces jointes

Dans ton code ci-dessus, il n'y a encore une fois aucune utilité à faire une boucle.
Tu as placé ton code dans le module ThisWorkbook, mais il n'a rien à faire ici sauf si tu veux exécuter ce code sur des évènements relatifs au Workbook (Open, Close, Save, etc...). En l'occurrence il ne sert à rien car n'est jamais exécuté car le bouton appartient à la feuille "Accueil & Navigation".
 

Pièces jointes

- 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

  • Question Question
Réponses
10
Affichages
942
Réponses
2
Affichages
922
Réponses
8
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…