IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Autorisation selon utilisateur sur un tableau [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre émérite Avatar de PrinceCorwin
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mars 2012
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 349
    Par défaut Autorisation selon utilisateur sur un tableau
    Bonjour à toutes et tous,

    Je construit un fichier pour une gestion des droits utilisateur à la connexion.
    Jusque là je me débrouille plutôt pas mal.
    Chaque utilisateur du fichier aura un identifiant et un mot de passe, qui seront gérés par un administrateur du fichier.
    Selon le niveau d'accréditation de l'utilisateur, des onglets s'affichent ou se masquent.
    jusque là très bien.

    Une demande particulière pour un onglet qui contient un tableau structuré .
    Comment autoriser l'utilisateur à ne voir que les lignes du tableau auxquelles il ne peut qu'accéder ?
    exemple :
    l'utilisateur 1 ne peut voir et modifier que les lignes "a",
    l'utilisateur 2 ne peut voir et modifier que les lignes "b",
    et l'administrateur peut tout voir et tout modifier, bien évidemment

    Nom : securite.PNG
Affichages : 250
Taille : 8,8 Ko

    Merci pour vos conseils.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour,

    Je pense que le plus simple est d'ajouter un onglet dédié (le même pour tous les utilisateur), dans lequel tu transfère uniquement les données qu'il a à "en connaître".
    C'est pas des plus simples mais ça évitera une usine à gaz pour gérer le tableau original.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    A part une usine à gaz, je ne vois pas trop de solutions. Excel gère mal ne gère pas du tout la protection sur les tableaux structurés, de sorte qu'il faut que la feuille soit déprotégée pour pouvoir vraiment utiliser les tableaux. Un simple filtre ne suffira donc pas. Cela signifierait de toute façon qu'il y a un lien entre les données et l'utilisateur ou le groupe d'utilisateurs qui peut les voir et qu'à l'activation de la feuille, on ne montrerait que les données "acceptables".

    Une idée serait que les données soient stockées dans un tableau d'une feuille VeryHidden et que seules les données modifiables soient transférées dans le tableau que l'utilisateur verra. Il faudra après repousser les lignes (toutes ou uniquement les modifiées) dans le tableau caché. Mais là aussi, il faudra déterminer une règle qui lie l'utilisateur aux données qu'il peut voir.

    On se rend assez vite compte qu'on est hors du périmètre normal d'utilisation d'Excel. Je ne doute cependant pas qu'on te propose des solutions toutes plus farfelues les unes que les autres


    [EDIT] Grillé par Patrice sur la solution du tableau caché
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre émérite Avatar de PrinceCorwin
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mars 2012
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 349
    Par défaut
    Bonjour à tous,

    Merci Patrice et Pierre pour ces conseils. Je me doutais bien que cela n'aurait pas été aussi simple.
    J'ai suivi la piste proposée.

    J'ai scindé le tableau pas onglet qu'un utilisateur peut accéder suivant son identifiant et mot de passe.

    J'avoue que l'utilisation de power query est très floue pour moi.
    Mais j'ai tout de même réussi à faire l'union des tableaux en un seul.

    Merci encore pour vos conseils.

  5. #5
    Membre émérite Avatar de PrinceCorwin
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mars 2012
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 349
    Par défaut
    Bonjour à toutes et tous,

    Je viens d'avoir d'autres informations concernant la demande.
    Et surtout j'ai eu un échantillon de fichier pour faire mes tests.

    Rien ne peux fonctionner.

    Dans le tableau de base, pas mal de formules qui vont cherche des valeurs dans d'autres onglets.
    Impossible de faire un copier/coller, car les numéros de ligne ne sont plus les mêmes.
    Cela sous-entend qu'il faut reconstruire toutes les formules pour chaque manager...

    Donc je reviens sur l'idée de départ, à savoir : "super masquer" des lignes d'un tableau selon l'utilisateur connecté.

    Est-il possible de "super masquer" des lignes dans un tableau, mais laisser les filtres actifs ?

    merci pour toutes les idées que vous aurez sur le sujet.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par PrinceCorwin Voir le message
    [...]
    Est-il possible de "super masquer" des lignes dans un tableau, mais laisser les filtres actifs ?[...]
    Pas à ma connaissance. tu peux masquer les lignes, manuellement ou par VBA, et elles n'apparaissent alors pas dans le tableau, mais comme tu ne peux pas protéger la feuille sans protéger les tableaux structurés, on pourra toujours afficher toutes les lignes par simple clic droit.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je viens de réaliser quelques tests.

    1. Déprotéger toutes les cellules;
    2. Masquer les lignes non désirées;
    3. Protéger la feuille en permettant l'insertion de lignes et éventuellement de colonnes.



    Tu pourras alors inclure des nouvelles lignes et l'utilisateur ne saura pas démasquer les lignes par clic droit. Si tu choisis de permettre le filtre automatique, alors malheureusement, l'utilisateur pourra afficher toutes les lignes.

    Peut-être y-a-t-il moyen par code de créer l'usine à gaz qui superverrouille et supercontrôle les actions de l'utilisateur, mais je doute que ça tienne vraiment. Comme déjà dit, on est pour moi à la périphérie d'Excel.

    Si la personne doit juste consulter les lignes visibles par elle, peut-être peux-tu t'orienter vers un copier-collage spécial valeurs.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour le Fil,
    Citation Envoyé par Pierre Fauconnier Voir le message
    ... Si la personne doit juste consulter les lignes visibles par elle, peut-être peux-tu t'orienter vers un copier-collage spécial valeurs.
    Et si la personne doit saisir des informations, c'est dans des cellules qui ne contiennent pas de formules donc le copier-collage spécial valeurs fonctionnerait aussi dans ce cas.

  9. #9
    Membre émérite Avatar de PrinceCorwin
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mars 2012
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 349
    Par défaut
    Bonjour tout le monde,

    Encore une fois merci à Pierre et Patrice pour vos conseils.

    J'ai opté pour le la protection et le masquage des lignes.
    Il faut garder les formules, car l'utilisateur doit voir la modification engendrée par ce changement.
    Le copier coller génère une erreur en référence croisée car les indices de ligne change entre l'origine et la destination (c'est mon analyse)

    Donc l'utilisateur ne voit que les lignes concernées et ne peut pas faire d'autre filtre.
    J'ai aussi protégé le code car il y a le mot de passe de protection des feuilles est en clair

    Dernière question :
    Est-il possible d'en faire un classeur partagé afin que tous les utilisateurs puissent l'utiliser à leur guise ?
    Ou vaut-il mieux garder en mode classique et n'autoriser qu'une seule connexion à la fois ?
    Le fichier est placé dans un dossier partagé en accès contrôlé. Seules les personnes connues peuvent y avoir accès en R/W.

    Merci pour vos conseils.

  10. #10
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Par défaut
    Bonjour,
    Citation Envoyé par PrinceCorwin Voir le message
    Dernière question :
    Est-il possible d'en faire un classeur partagé afin que tous les utilisateurs puissent l'utiliser à leur guise ?
    Ou vaut-il mieux garder en mode classique et n'autoriser qu'une seule connexion à la fois ?
    J'ai de trop mauvaises expériences avec des classeurs partagés, mal gérés par le responsable du partage, pour te conseiller cette option : ça s'est parfois terminé en catastrophe avec un classeur irrécupérable. Il est impératif que le responsable gère périodiquement les modifications.

    Aujourd'hui, au lieu d'un classeur avec plein de protections hasardeuses, je pense qu'il est préférable de prévoir une base de données unique et un classeur par utilisateur. Power Query permet d'y importer uniquement ce qui est utile. Toujours avec PQ, l'administrateur peut effectuer la mise à jour de la BdD à partir des classeurs de chaque utilisateur.

    Mais Excel ne remplacera pas un vrai SGBDR (qui gère nativement tous ces problèmes).

  11. #11
    Membre émérite Avatar de PrinceCorwin
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Mars 2012
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 349
    Par défaut
    Bonjour Patrice,

    Merci pour ta réponse que je redoutais
    C'est prévu d'acheter un vrai outil qui sera connecter à notre ERP dès l'année prochaine.

    Merci à tous pour vos conseils.

  12. #12
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    J'arrive sur le tard mais je plussoie Patrice sans réserves.

    Partager un classeur, en plus avec des macros qui affichent et masquent des lignes "à la demande" est la meilleure manière de courir à la catastrophe. Les versions modernes de l'outil ne permettent d'ailleurs plus le partage "en tant que tel", mais au travers d'un hébergement OneDrive et pour une utilisation au travers d'un explorateur Web dans lequel le VBA sera inopérant.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 24/07/2019, 05h39
  2. [XL-2010] Tableau pour accès différents selon utilisateurs
    Par Max1991 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 13/07/2016, 15h36
  3. Réponses: 7
    Dernier message: 27/04/2012, 17h06
  4. [XL-2010] VBA Autoriser le filtre d'un tableau sur une feuille protégée
    Par praucq dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/03/2012, 10h09
  5. [VBA-E] Dim dynamique sur un tableau
    Par Vince69 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo