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

Microsoft 365 Accès restreint par onglet suivant utilisateur

Roger MEYER

XLDnaute Nouveau
Bonjour,
Je gère une association sportive - club de foot - et pour ce faire j'utilise un classeur Excel qui se compose de 25 onglets dont un onglet BdD.

Équipements / gestion individualisée des commandes des livraisons par catégorie de joueurs et de licenciés / des paiements
licences / selon tableau des catégories
Administratifs / dont la connaissance du joueur / des coordonnées personnelles / d'antériorités etc... mails - adresse - tél etc...

Bref...!!
Via une feuille Sommaire toujours présente j'ai organisé un organigramme par clic sur des boutons d'accès par macro aux différentes feuilles.
Selon cet organigramme il présente les onglets exclusivement nécessaire au traitement de la demande et masque les onglets inutiles.

Cependant je voudrais que certains utilisateurs ne puissent pas accéder à tel ou tel onglet.
Sans nuire aux macros existantes.. ce qui serait le Top

Autrement dit selon l'utilisateur et son mot de passe attribué, il ne pourrait accéder qu'aux onglets dédiés.
Auriez-vous l'amabilité de secourir un vieux Monsieur... mais pas acariâtre du tout..
Soyez-en remercié par avance

A la suite d'un contact possible je pourrais échanger un fichier mais qui pèse lourd (18 Mo)
 

GALOUGALOU

XLDnaute Accro
Bonjour roger
Poster le fichier sur
et déposer le lien qui vous sera communiqué sur xld. Le fichier sera disponible 14 jours
Cordialement
Galougalou
 
Dernière édition:

Roger MEYER

XLDnaute Nouveau
Bonjour à tous,
comme convenu voici le lien pour la récupération de mon fichier.

www.grosfichiers.com/4Sx8Hw3ZiEX

L'objectif que je poursuis:
1 - l'onglet Sommaire devient l'onglet de base sur lequel je mettrais les 2 boutons actuellement sur l'onglet OUVERTURE
2 - Suppression de l'onglet OUVERTURE et aussi la colonne afférente sur l'onglet Paramétrage
3 - Faire en sorte que toutes les feuilles (28) de l'onglet paramétrage s'ouvrent par l'accès avec (Admin). Je ne comprend pas pourquoi ça ne marche pas actuellement car précédemment dans mon test tout est OK

4 - Faire en sorte que depuis l'onglet Sommaire mes macros fonctionnent avec les restrictions du Paramétrage. C'est à dire ne puisse ouvrir que les onglets autorisés.
Donc - Comment faire selon vous

Par avance MERCI de vos solutions
 

Jacky67

XLDnaute Barbatruc
Et pourtant, j'avais mis un exemple en #4 qui fonctionne exactement selon ce principe.
Mais bon, je passe mon chemin...
 

fanch55

XLDnaute Barbatruc
Salut
J'ai transformé les données dans la feuille Paramétrage en Table "Param"
Modules modifiés:
VB:
                                            'J'ai fait le choix d'une fonction car il ne s'agit que de savoir
                                            'si le mot de passe correspond à l'utilisateur.
                                            'par conséquent, il nous faut une procédure qui compare les 2
                                            'et qui renvoie VRAI ou FAUX (d'où la fonction déclarée As Boolean).
                                            'ICI : (Utilisateur As String, MdP As String)
                                            'sont des paramètres envoyés lors du clic sur le bouton
    
Function VerifMDP(Utilisateur As String, MdP As String) As Boolean
Dim rngTrouve As Range
VerifMDP = False                            'par défaut, renvoie FAUX

With Sheets("paramétrage")                  'dans la feuille paramétrage
                                            'cherche, colonne A, le nom d'utilisateur saisi
    Set rngTrouve = [Param[Nom]].Find(Utilisateur, lookat:=xlWhole)
    If rngTrouve Is Nothing Then            'si il ne trouve pas
        VerifMDP = False                    'la fonction renvoie faux
    Else                                    's'il le trouve
                                            'vérifie que le mot saisi feuille paramétrage colonne B est identique
                                            'au mot de passe saisi dans l'USF
        If rngTrouve.Offset(0, 1) <> MdP Then
            VerifMDP = False                'si FAUX
        Else
            VerifMDP = True                 'si VRAI
        End If
    End If
End With
End Function

Sub AfficheFeuilles(Utilisateur As String)
Application.ScreenUpdating = False

Dim Ws As Worksheet
Dim ErrName As String, ColName As String

    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Type = xlWorksheet And Ws.Name <> ActiveSheet.Name Then Ws.Visible = xlSheetHidden
    Next
    
    [Param].Parent.Activate
    i = [Param[Nom]].Find(Utilisateur, lookat:=xlWhole).Row - 1
    For J = 3 To [Param].Rows(i).Columns.Count
        If [Param].Rows(i).Columns(J) = "x" Then
            ColName = [Param[#Headers]].Columns(J)
            On Error Resume Next
            Sheets(ColName).Visible = True
            If Err > 0 Then
                ErrName = IIf(ErrName = vbNullString, ColName, ErrName & "," & ColName)
                Err.Clear
            End If
        End If
    Next
    
    If ErrName <> vbNullString Then
        ErrName = "Feuilles non trouvées:" & vbLf & ErrName
        MsgBox ErrName
        Debug.Print Replace(ErrName, ",", vbLf)
    End If

End Sub

Vous pourrez constater que certains noms de colonnes ne sont pas synchrones avec les noms de Feuilles Existantes ...
 

Roger MEYER

XLDnaute Nouveau
OK...
Merci à tous..
Je suis vraiment un bleu du haut de mes 75 ballets..
Alors il y a des moments ou je dois atterrir un peu..

Oui évidemment j'ai vu la proposition de Jacky67 et je n'ai pas oublié sa façon de procéder.
cependant j'ai pour le moment privilégier la démarche de Galougalou...
Mais je ne suis pas encore rendu..!!
Je ne comprends pas tout
j'attends vos propositions tel que souhaité dans ma dernière sollicitation #20 et qui porte aussi sur mes macros sans doute à modifier.

Roger
 

Roger MEYER

XLDnaute Nouveau
Bonjour Fanch55
merci de ta proposition que je viens d'eesayer pour voir l'améliotation...
cependant - j'ai une erreur dès la ligne

Set rngTrouve = [Param[Nom]].Find(Utilisateur, lookat:=xlWhole)

Et donc je suis bloqué pour terminer l'essai..
 

ChTi160

XLDnaute Barbatruc
Re
Bonsoir le Fil ,le Forum
je n'arrive pas a comprendre comment a partir des Boutons de la feuille "Sommaire" déterminer quelles sont les feuilles Accessibles qui plus est en fonction des Autorisations . car a chaque procédure on Affiche les feuilles puis ensuite On masque tout sauf "BDD" "Sommaire" et "Ouverture" je crois.
Sauf Tous les Onglets là j'ai compris Lol
Pourrais tu m'éclairer ?
Exemple :
via le Bouton Equipe on peut avoir accès aux Feuilles : Feuille XX : Feuille XXX : Feuille yyyy selon autorisations;
je ne sais pas si je suis Clair Lol
Bonne nuit
jean marie
PS : Roger Chez moi la procédure de funch55 (que je salue) fonctionne
après avoir créée le tableau "Param" dans la feuille "paramétrage"
 
Dernière édition:

fanch55

XLDnaute Barbatruc
Bonsoir à tous,

@Roger MEYER

Comme j'avais trouvé une table BDD dans le fichier fourni ( table qui à mon avis peut être réduite, les lignes vides étant superflues ), je pensais que vous saviez comment construire une table ( sans vous offenser )

Pour vous aider à créér rapidement la table param dans le contexte de ce fichier , une sub à exécuter :
VB:
Sub Bld_Param()

    With Sheets("Paramétrage")
        .Visible = True
        .Activate
        .ListObjects.Add(xlSrcRange, Range("A1:AE7"), , xlYes, _
            "TableStyleMedium9").Name = "Param"
    End With
    [Param[#Headers]].Columns.AutoFit
    [Param].AutoFilter
   
End Sub
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…