XL 2016 Groupe Onglets

Benoit69005

XLDnaute Nouveau
Bonjour à Tous,

Je suis nouveau sur le Site. Je m'appelle Benoit, je suis professeur de sécurité sur Lyon.
J'aime beaucoup me lancer de nouveaux défis notamment avec l'informatique, surtout avec Excel. Donc me voilà lancer dans le monde de la macro.

Mon fichier ;
J'ai un fichier avec plusieurs onglets (71 en tout ; susceptible d'évoluer mais normalement non).
Premier Onglet ; Sommaire Général
Deuxième Onglet : Liste des onglets avec liens hypertexte (fait par macro, ça j'ai trouvé)
Troisième à 19: Groupe1
Vingt à 36 : Groupe2
36 à 53 : Groupe3
54 à 70 : Groupe4
71 : Notes/post-it

Deux catégories de personnes ont accès à ce fichier. Les admins, les autres.

Mon problème :
Pour tous le monde
A l'ouverture du fichier, on arrive sur "Sommaire Général". Aucun autre onglet de visible
Choix par boutons d'accéder soit à Goupe1 (Afficher les onglets du Groupe1) soit à Groupe2, soit à Groupe3 soit à Groupe4.
Par onglets je mets un lien hypertexte pour retour au sommaire général, qui masque en même temps le groupe qui venait d'être activer.

Pour les admins (les seules à pouvoir modifier le fichier)
un bouton en plus sur "Sommaire général" pour avoir accès en même temps à l'ensemble des onglets via la feuille "Liste des onglets".

Je pense devoir créer des noms de groupes :
Groupe1= "Feuille1"+ "Feuille2"...etc...
Groupe2....
....

Et après faire un petit code :
Quand je clic sur bouton1 alors afficher groupe1....(ça je pense y arriver)

Mon problème est donc dans la partie 2 comment créer ces groupes de feuilles ?

J'espère avoir été assez clair dans l'énoncé de mon sujet.
Je vous remercie par avance de me lire et si possible de m'aider
Benoit.
 

chris

XLDnaute Barbatruc
Bonjour

Je pense qu'il faudrait dans un onglet supplémentaire faire une liste sur 2 colonnes avec Groupe et nom d'onglet (1 ligne par onglet) à utiliser comme tableau de paramètres (évolitif) pour gérer tes groupes.
 

chris

XLDnaute Barbatruc
Re

Eh bien de pouvoir aisément gérer les feuilles de chaque groupe avec un code du type
VB:
    Sub MasquerAfficher(MonGroupe As String, Choix)

    Dim Param()
    Dim GroupeFeuilles(99)
    Dim x As Integer
    
    Param = Application.Transpose(Range("Groupes").ListObject.DataBodyRange)
    MonGroupe = "2"
    x = 1
    For i = 1 To UBound(Param, 2)
        If Param(1, i) = MonGroupe Then
            GroupeFeuilles(x) = Sheets(Param(2, i)).Name
            x = x + 1
        End If
    Next i
    For i = 1 To x - 1
            Sheets(GroupeFeuilles(i)).Visible = IIf(Choix = "Masquer", xlSheetHidden, xlSheetVisible)
        Next i
End Sub
Appelable par
Call MasquerAfficher("2", "Démasquer") ou Call MasquerAfficher("2", "Masquer")
 

Discussions similaires

Statistiques des forums

Discussions
315 133
Messages
2 116 603
Membres
112 802
dernier inscrit
Dan Marc