Case à cocher pour afficher et masquer des feuilles

Bonjour,

Je tente de mettre en place une macro qui permettrait d'afficher et masquer des feuilles via des cases à cocher.

J'ai renommé l'ensemble des feuilles, j'ai fait une feuille qui ressemble à un sommaire avec le nom de chaque feuille + une case à cocher + une mise en forme conditionnelle ( si cellule de la case à cocher =C4*1=0 alors faux =C4*1=1 alors vrai) + la macro suivante :

Sub affichefeuilles()

Application.ScreenUpdating = False

For i = 2 To 103

Select Case Cells(i, 3)

Case Is = False

Sheets(i - 2).Visible = 2

Case Is = True

Sheets(i - 2).Visible = -1

End Select

Next i

Application.ScreenUpdating = True

End Sub

Mon niveau en VBA est faible je ne reussis pas à me dépatouiller de ça...

merci pour votre aide.

V

Bonjour,

Pouvez-vous nous envoyer votre fichier Excel pour que l'on puisse tester?

Cindy

Bonjour CindyD,

Merci beaucoup pour votre aide.

En pièce jointe un fichier qui donne un aperçu de ce que je souhaite faire...mais qui ne fonctionne pas Ce serait trop simple!

Mon fichier final comportera une centaine de feuilles. Je souhaite avoir une feuille principale dans laquelle sont listées mes feuilles par "Nom", associées à une case à cocher: Vrai: Onglet affiché / Faux: Onglet Masqué.

Actuellement, mes cases à cocher permettent d'afficher/masquer mes 3 feuilles...Avec un code en boucle...certainement pas optimal pour gérer une centaine d'onglet....

De plus mon contôle ActiveX ne me permet pas de mettre à jour ma colonne VRAI/FAUX.

Comment je peux faire ça avec mon bout de code...?

114viggie-draft-v1.xlsm (34.70 Ko)

Un grand merci:!

Bonjour toutes et tous

@Viggie

@tester ci-joint

1/avec une mise en forme conditionnelle (MFC) pour la colonne C pour VRAI ou FAUX

2/ et, si cocher affiche dans la cellule VRAI ou si décocher affiche Faux

crdlt,

André

zcochemfc

Bonsoir,

Effectivement, pour gérer la visualisation d'une centaine d'onglets, un code "par checkbox" sera vite ingérable....

En utilisant un module de classe, quelques lignes suffiront

regarde le fichier joint

j'ai conservé le principe de la MEFC du fichier d'origne

les codes sont dans :

  • le code "This Workbook" (pour l'initialisation à l'ouverture du fichier)
  • le module1 (en cas de réinitialisation)
  • le module de classe "Classe 1" (qui comporte le code permettant d'afficher ou non l'onglet, avec la mise à jour en colonne C)

un bouton "reset" permet de réinitialiser le code en cas de plantage, ou d'ajout de checkbox

Mef, j'ai utilisé la fonction Trim, car il y a un espace après le nom de l'onglet dans la colonne B

Bonne soirée

bonjour André,

bonjour cousinhub,

Merci beaucoup pour vos contributions et vox explications.

Il n'y a jamais de problème, que des solutions...J'avais tourné mon problème différemment et j'ai trouvé une solution.

Je vous remercie pour vos explications, je les garde précieusement.

pour ma part, j'ai créer un bouton qui appelle un UserForm. Dans ce UserForm j'ai créé des CheckBox qui me permettent de sélectionner les onglets que je souhaite afficher...

Bon niveau du code...c'est très redondant, mais n'ayant aucune compétence et n'y comprenant pas grand chose, je suis contente du résultat

2 boutons: L'un faisant appelle au UserForm pour Horus. L'autre faisant appelle au UserForm pour la Synthèse.

Code sur le bouton appelant le userform:

Sub Bouton1_Cliquer()

UserForm1.Show

End Sub

Sub Bouton2_Cliquer()

UserForm2.Show

End Sub

Un troisième bouton pour effacer les onglets...Je prévois le coup avec ma centaine

Ensuite, dans chaque UserForm un code presque similaire, répéter par chaque nom d'onglets... (49 horus + 49 synthèses):

Private Sub CommandButton1_Click()

With Sheets("Sélection")

If CheckBox1 = True Then

Worksheets("Horus Afrique").Visible = True

Else

Worksheets("Horus Afrique").Visible = False

End If

End With

Unload UserForm1

End Sub

Enfin, j'ai rajouté une possibilité dans l'UserForm, celle de pouvoir tout sélectionner en un clic avec le code suivant:

Private Sub CommandButton2_Click() 'Tout cocher

Dim i As Integer

For i = 1 To 1

Me.Controls("checkbox" & i).Value = True

Next i

End Sub

je reste à votre écoute si on peut alléger, mais en tous les cas ça fonctionne

Bon week end,

193classeur2-copie.xlsm (28.63 Ko)
Rechercher des sujets similaires à "case cocher afficher masquer feuilles"