XL 2019 <XL2021> Menu liste des feuilles visibles seulement

oukthr

XLDnaute Nouveau
Bonjour, vous trouverez en pièce jointe un fichier avec des feuilles visibles selon des droits utilisateurs, je voulais ajouter un menu de navigation entre les feuilles avec un Userform, je cherche une modification pour n'afficher que les feuilles visible par l'utilisateur connecté.
 

Pièces jointes

  • test (9).xlsm
    64.5 KB · Affichages: 5
Solution
Bonjour Oukthr,
Un essai en PJ avec :
VB:
Private Sub UserForm_Initialize()
Dim feuille As Worksheet, utilisateur$, Ligne%, Colonne%
utilisateur = Sheets("Login").UserIn.Value
If Application.CountIf(Sheets("members").[A:A], utilisateur) > 0 Then
    Ligne = Application.Match(utilisateur, Sheets("members").[A:A], 0)
    For ligne_box = 0 To Me.ListBox1.ListCount
        For Each feuille In Sheets
            If Application.CountIf(Sheets("members").[4:4], feuille.Name) > 0 Then
                Colonne = Application.Match(feuille.Name, Sheets("members").[4:4], 0)
                If Sheets("members").Cells(Ligne, Colonne) = "Oui" Then
                    Me.ListBox1.AddItem feuille.Name
                    Me.ListBox1.Font.Bold = False...

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Oukthr,
Un essai en PJ avec :
VB:
Private Sub UserForm_Initialize()
Dim feuille As Worksheet, utilisateur$, Ligne%, Colonne%
utilisateur = Sheets("Login").UserIn.Value
If Application.CountIf(Sheets("members").[A:A], utilisateur) > 0 Then
    Ligne = Application.Match(utilisateur, Sheets("members").[A:A], 0)
    For ligne_box = 0 To Me.ListBox1.ListCount
        For Each feuille In Sheets
            If Application.CountIf(Sheets("members").[4:4], feuille.Name) > 0 Then
                Colonne = Application.Match(feuille.Name, Sheets("members").[4:4], 0)
                If Sheets("members").Cells(Ligne, Colonne) = "Oui" Then
                    Me.ListBox1.AddItem feuille.Name
                    Me.ListBox1.Font.Bold = False
                    Me.ListBox1.Font.Size = 13
                End If
            End If
        Next
    Next
End If
End Sub
 

Pièces jointes

  • test (9).xlsm
    59.4 KB · Affichages: 5

Jacky67

XLDnaute Barbatruc
Bonjour, vous trouverez en pièce jointe un fichier avec des feuilles visibles selon des droits utilisateurs, je voulais ajouter un menu de navigation entre les feuilles avec un Userform, je cherche une modification pour n'afficher que les feuilles visible par l'utilisateur connecté.
Bonjour à tous
Une autre proposition tenant compte des plages nommées existantes+ celle du doubleclic dans la listbox
VB:
Private Sub UserForm_Initialize()
    Dim feuille As Worksheet, C As Range
    Me.ListBox1.Clear
    Me.ListBox1.Font.Bold = False
    Me.ListBox1.Font.Size = 13
    Me.ListBox1.AddItem Feuil18.Name '**Facultatif
    For Each C In [plage].Rows(Application.Match(Feuil18.UserIn.Value, [Users], 0)).Columns
        If C = "Oui" Then Me.ListBox1.AddItem Feuil19.Cells(4, C.Column)
    Next
End Sub

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Sheets(Me.ListBox1.List(Me.ListBox1.ListIndex)).Activate
    Unload UserForm1
End Sub
 
Dernière édition:

oukthr

XLDnaute Nouveau
Re,

Qu'entendez vous par là ?
Toute la feuille ? ou seulement le nom de l'onglet ?
Ou encore le nom de la feuille dans le userform ?
Re, je ne sais pas si c'est possible d'abord, ce que je veux c'est que quand j'exécute le Userform à partir d'une feuille, le nom de cette feuille apparait diffèrent dans la liste du Userform, voir la pièce jointe.
 

Pièces jointes

  • Capture d’écran (99).png
    Capture d’écran (99).png
    12.3 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Perso je ne sais pas faire, je ne sais même pas si c'est possible avec une ListBox.
Par contre, il semblerait que ce soit possible avec une ListView, mais je n'ai jamais joué avec.
 

Discussions similaires

Statistiques des forums

Discussions
312 249
Messages
2 086 598
Membres
103 253
dernier inscrit
alscanv974