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

XL 2013 Afficher ou masquer des onglets selon valeur d’une cellule par VBA

FifiSt

XLDnaute Nouveau
bonjour,

je viens vous demander de l'aide désespérément

Je souhaite masquer des feuilles par code VBA :

Sur l’onglet « INDEX » sur la cellule « E1 » je sélectionne un nom
En « F11 », à l’aide d’une formule il apparaît une référence dossier

Je souhaiterais pouvoir en cliquant sur un bouton :
afficher les feuilles dont la référence dossier en « A1 » correspond à celle indiqué en « F11 »
Masquer les onglets avec une autre référence dossier
Et laisser apparent les onglets « mode d’emploi « «responsable », »salarié » et « INDEX »

merci beaucoup pour votre aide
 

Pièces jointes

  • exemple.xlsm
    13.7 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonjour FifiSt, Lolote83,patty58,

Une autre solution avec le classeur protégé pour éviter que l'ordre des feuilles soit modifié :
VB:
Private Sub Worksheet_Change(ByVal target As Range)
If Intersect(target, [E11]) Is Nothing Then Exit Sub
Dim x$, i%, w As Worksheet
x = UCase(CStr([F11]))
ThisWorkbook.Unprotect "FifiSt" 'ôte la protection du classeur
For i = 5 To Worksheets.Count
    Set w = Worksheets(i)
    w.Visible = IIf(UCase(w.Cells(1)) = x, xlSheetVisible, xlSheetHidden) 'ou xlSheetVeryHidden
Next
ThisWorkbook.Protect "FifiSt" 'rétablit la protection du classeur
End Sub
A+
 

Pièces jointes

  • exemple(1).xlsm
    27.2 KB · Affichages: 8

Discussions similaires

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