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

Statistiques des forums

Discussions
314 771
Messages
2 112 768
Membres
111 653
dernier inscrit
Vanie0082