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
re roger
je viens de regarder le fichier
alors attention, il n'est pas souhaitable de supprimer l'onglet ouverture, il est indispensable pour que à l'ouverture l'opérateur soit obligé d'activer les macros, si non toutes personnes auraient encore plus facilement la possibilité de désactiver les macros et de rendre les protections totalement inopérente, (déjà une personne un peu au fait de l'informatique à beaucoup de solutions pour contourner les protections) conclusion c'est une très mauvaise idée de supprimer l'onglet ouverture
par contre il est totalement possible de déplacer les boutons de macros et de modifier la page d'accueil macro activée, je regarde ça à tête reposée et je vous fait un retour
cordialement
galougalou
 
Dernière édition:

Roger MEYER

XLDnaute Nouveau
Bonjour à Tous
Merci pour vos réponses..
je regarde dès demain ce que vous proposez..

Spécialement pour @+Thierry
Je suis désolé mais même si j'ai pas tout compris sur le "ça sent trop fort le gaz"
je vous remercie cependant de m'avoir accompagner un peu..

je sais, je sais, les vieux c'est chiant, ils ne comprennent rien et en plus ils sont sourds..
Mais je vous l'avais bien dit.
Je suis quasiment un vrai débutant
Merci à vous néanmoins

Heureusement certains retraités de la SNCF ou d'ailleurs continuent de me supporter..
On va finir par y arriver
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir Roger, le Fil

Bien loin de moi de critiquer tes connaissances et encore moins ton age (je suis de 61 !)

Non quand je dis ça sent le gaz, c'est que ça part dans tous les sens ce fil au fûr et à mesure des différents intervenants et j'ai peur que tu n'arrives plus du tout à faire fonctionner une solution.

Il faut rester tout simple, sinon tu auras tout le temps des ennuis avec tes utilisateurs et des cas imprévus.

Bonne soirée
@+Thierry
 

GALOUGALOU

XLDnaute Accro
re roger ,thierry, le fil
effectivement j'ai l'impression que la construction du classeur proposé met en œuvre plusieurs solutions différentes, ce qui emmène des situations conflictuelles.
la solution que je vous ai proposé permet de sélectionner des onglets. et vos macros aussi. c'est inutile. choisissez une solution ou l'autre en pensant au fil 4
thierry a dit , il faut rester tout simple, et je pense qu'il a entièrement raison.

une précision
attention dans la solution que je vous ai proposé à la concordance des noms entre les onglets et la feuille paramétrage. des différences d’orthographie sont responsable de dysfonctionnement.
cordialement
galougalou
 

fanch55

XLDnaute Barbatruc
Bonsoir,
toujours dans le but de vous aider à avancer , la sub ci-dessous vous permettra de corriger les fautes de saisie des feuilles :
VB:
Sub Bld_Param()
Dim LFeuilles As String
Dim Ws As Worksheet

    For Each Ws In ThisWorkbook.Worksheets
        If Ws.Type = xlWorksheet Then
            LFeuilles = LFeuilles & IIf(LFeuilles = "", "", ",") & Ws.Name
        End If
    Next

    With Sheets("Paramétrage")
        
        .Visible = True
        .Activate
        On Error Resume Next
            .ListObjects("Param").Unlist
        On Error GoTo 0
        .ListObjects.Add(xlSrcRange, Range("A1:AE7"), , xlYes, _
            "TableStyleMedium9").Name = "Param"
    End With
    [Param[#Headers]].Columns.AutoFit
    [Param].AutoFilter
    
    
    For Each Elem In [Param[#Headers]]
        With Elem.Validation
            If Elem <> "NOM" And Elem <> "Mot de Passe" Then
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
                    Operator:=xlBetween, Formula1:=LFeuilles
            End If
        End With
    Next

End Sub

Les Entêtes de Colonnes ayant un petit triangle vert dans le coin gauche supérieur indiquent qu'elles n'existent pas dans les feuilles existantes, cliquez sur cette entête et choisissez la bonne feuille ...

Roger.gif
 

GALOUGALOU

XLDnaute Accro
re roger re le fil
après avoir étudier votre classeur, j'ai l'impression que vos macros sont bien au point, il faudrait pourtant rajouter une gestion des erreurs car le fait de masquer la feuille Sommaire en début de procédure peut conduire à une erreur. le mieux, ne pas la masquer, c'est la feuille de base.
j'ai vraiment l'impression que ma proposition des fils précédents est inutile dans votre classeur c'est pourquoi je vous propose une autre solution qui demande un mot de passe et sur une bonne réponse déclenchera votre macro (affichage ou masquage des onglets et exécution des différentes procédures)
un userform UserFormMDP avec une textbox pour la saisie d'un mot de passe masqué
VB:
Private Sub CommandButton1_Click()
PSW = TextBox1.Value
Unload UserFormMDP
End Sub

un code dans un module qui permets la gestion de plusieurs utilisateurs, à vous de renseigner les mots de passe (dans ce code, admin, roger, pierre, paul)
Code:
Public PSW As String

Sub MOT_DE_PASSE()
Call Masquer_feuille
PSW = ""
UserFormMDP.TextBox1.Value = ""
UserFormMDP.Show
If PSW = "Admin" Then
             MsgBox ("cette macro va déclencher la macro ouvrir tous les onglets!")
      Call Ouvrir_Tous_Les_Onglets

       ElseIf PSW = "roger" Then
             MsgBox ("Bonjour Monsieur, choisir votre macro pour roger!")
      
              ElseIf PSW = "pierre" Then
             MsgBox ("Bonjour Monsieur, choisir votre macro pour pierre!")
      
              ElseIf PSW = "paul" Then
             MsgBox ("Bonjour Monsieur, choisir votre macro pour paul!")
      
      
         Else
            MsgBox ("vous n'êtes pas autorisé à utiliser ce PROGRAMME   !")
         'l'information suivante ferme le classeur
            'Application.Quit
  
  End If

End Sub
supprimer toutes les msgbox sauf MsgBox ("vous n'êtes pas autorisé à utiliser ce PROGRAMME !")

c'est un gros boulot de procéder comme cela, car il faudra gérer toutes les macros, mais au moins c'est complémentaire de votre travail.
dans cette solution la feuille paramétrage ne sert plus à rien.
je ne vous dit pas que c'est la solution, juste une proposition pour vous donner un maximum de choix.

votre classeur disponible 14 jours sur le lien suivant
www.grosfichiers.com/EtzfB3UsFWW
je posterais dans quelques jours une version allégée de cette solution pour qu'elle soit visible sur xld
cordialement
galougalou
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour Roger
Bonjour le Fil ,le Forum

Arff !
J'attends toujours , afin de m'éclairer , une réponse à mon interrogation du post #29 .
j'ai l'impression que je suis le seul à me poser cette question.
je n'arrive pas à comprendre comment à partir des Boutons de la feuille "Sommaire" déterminer quelles sont les feuilles Accessibles qui plus est en fonction des Autorisations
si quelqu'un (mais surtout Roger Lol) peut m'expliquer (Un tableau) .
car il devrait être possible et important de savoir quelles sont les feuilles affectées à ces Boutons .
Exemple :
Bouton Rectangle X "Tous les ONGLETS" là j'ai compris , toutes les Feuilles sans exception . Lol
Bouton Rectangle Y "ADMINISTRATIF - Seul" Feuilles XX, YY ,VV , etc
Bouton Rectangle Z "PACK - Dirigeant" Feuilles XX,OO ,UU etc etc
et cela pour tout les Boutons Rectangle de la feuille Sommaire.
Car afficher des feuilles en fonction d'une autorisation, j'y arrive .
mais l'appliquer (l'affichage) après avoir appuyé sur un Bouton "Rectangle" sans savoir quelle feuilles il prend en compte (ce Bouton) Lol
ou alors , il faut afficher toutes les feuilles accessibles par l'utilisateur , quelques soit le Bouton (Rectangle) actionné par celui-ci ?(et ça n'aurait pas de sens , je pense)
Un bouton par utilisateur en feuille "Sommaire" suffirait .
mais bon c'est peut être évident , mais moi je vois pas ! Lol
Merci par avance
Bonne journée
jean marie
 

ChTi160

XLDnaute Barbatruc
Re
je viens de regarder le très beau travail de GALOUGALOU ;
et je me dis , si dans la feuille "Sommaire" , "Admin" Click sur le Bouton Rectangle "PACK - Dirigeant" que doit il se passer ?
car ce bouton Rectangle "PACK - Dirigeant" donne accès à quelles Feuilles ? idem pour les autres Boutons
Rectangle .
je sais pas si je suis clair Lol
Merci
par avance
jean marie
 

Statistiques des forums

Discussions
312 046
Messages
2 084 843
Membres
102 686
dernier inscrit
Franck6950