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 :

Définir un mot de passe à un seul endroit [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Prêts hypothécaires
    Inscrit en
    Juin 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Prêts hypothécaires

    Informations forums :
    Inscription : Juin 2017
    Messages : 18
    Par défaut Définir un mot de passe à un seul endroit
    Bonjour tout le monde,

    J'ai cherché un peu partout, mais je n'ai malheureusement pas trouvé la solution à mon problème.

    J'ai un classeur excel avec plusieurs feuilles. J'ai introduit sur l'une des feuilles un bouton pour protéger toutes les feuilles et un bouton pour les déprotéger toutes en même temps. Tout fonctionne à merveille.

    Ou est le problème me direz-vous ?

    Le mot de passe est écrit à plusieurs endroits (ThisWorkBook, UserForm1, etc.).

    Ce que je souhaite faire, c'est définir à un seul endroit et une seule fois le mot de passe et que les Sub de toutes les feuilles, modules et/ou Userform aillent chercher le mot à l'endroit unique. Ainsi si je souhaite changer le mot de passe, je ne devrais le faire qu'à un seul endroit.

    Mon problème, je ne sais où ni comment (j'ai essayer dans une déclaration d'un module en précisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public mdp As Variant
    mdp = "abcde"
    Mais il n'est pas repris...

    Merci pour votre aide et Excellentes Fêtes de Pâques.

    Je ne peux malheureusement pas publier le fichier ni le code car il s'agit de données professionnelles sensibles.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    Bonjour,

    2 choses ici : la portée et le type de ton information

    C'est une constante et non une variable, aussi tu pourras passer par un Const MDP="motdepasse"

    Pour que l'information soit visible de tous, elle doit être Public dans un module
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Soit tu cherches à protéger tes feuilles contre les maladresses de tes utilisateurs et, dans ce cas, le mot de passe est inutile.
    Soit tu cherches vraiment à les protéger contre des intrusions malveillantes et, dans ce cas, VBA n'est pas le bon outils.

    Je n'ai pas encore vu de gestion de mot de passe incluant du VBA et pouvant résister à quelques minutes de réflexion pour quelqu'un ayant quelques bases dans le domaine ou sachant mettre les bons tags dans n'importe quel moteur de recherche.

    Mot de passe géré par VBA, c'est un oxymore (ou alors, il faut monter une usine à gaz beaucoup plus compliquée avec encryptage et modules eux-mêmes protégés).
    C'est comme mettre une serrure sur la porte et laisser la clé sous le paillasson.
    En si en plus le mot de passe est conserver dans une variable (ou une constante) nommée "mdp", c'est comme marquer sur le paillasson "la clé en dessous".

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    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 478
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Soit tu cherches à protéger tes feuilles contre les maladresses de tes utilisateurs et, dans ce cas, le mot de passe est inutile.

  5. #5
    Membre averti
    Homme Profil pro
    Prêts hypothécaires
    Inscrit en
    Juin 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Prêts hypothécaires

    Informations forums :
    Inscription : Juin 2017
    Messages : 18
    Par défaut Merci
    Bonjour Jean-Philippe,

    J'ai spécifié une déclaration dans un module ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Const MDP = "motdepasse"
    Et ça fonctionne merci beaucoup.

    Pour répondre à Menhir et Patrice 740 :
    Je souhaite effectivement protéger les feuilles des maladresses des utilisateurs (dont parfois la déprotection de la feuille s'il n'y a pas de mot de passe).
    Je ne connais pas d'autres moyens d'y parvenir, mais vos trucs et astuces sont les bienvenus.

    En ce qui concerne le mot de passe dans mon code VBA, il est lui-même protégé car mon projet à lui-même un autre mot de passe. Je pensais que c'était suffisant. Est-ce le cas ?

    Je suis conscient que le seul moyen de protéger un classeur de toute intrusion est de lui mettre un mot de passe empêchant son ouverture. Ce que je ne souhaite pas faire ici.

    Merci pour vos conseils sur les deux points en gras.

    Bonne journée

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    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 478
    Par défaut
    Re,
    Citation Envoyé par dadoo99 Voir le message
    En ce qui concerne le mot de passe dans mon code VBA, il est lui-même protégé car mon projet à lui-même un autre mot de passe. Je pensais que c'était suffisant. Est-ce le cas ?
    Je suis conscient que le seul moyen de protéger un classeur de toute intrusion est de lui mettre un mot de passe empêchant son ouverture. Ce que je ne souhaite pas faire ici.
    Est-ce le cas : Non
    Le seul moyen de protéger un classeur de toute intrusion : ne pas le divulguer et le conserver sur un poste isolé de tout réseau.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par dadoo99 Voir le message
    Je souhaite effectivement protéger les feuilles des maladresses des utilisateurs (dont parfois la déprotection de la feuille s'il n'y a pas de mot de passe).
    Supprimer volontairement la protection d'une page, ce n'est pas de la maladresse mais de la malveillance.
    Je le répète, si tu dois jouer contre les utilisateurs, VBA n'est pas l'arme appropriée.

    En ce qui concerne le mot de passe dans mon code VBA, il est lui-même protégé car mon projet à lui-même un autre mot de passe. Je pensais que c'était suffisant. Est-ce le cas ?
    Que se passe-t-il si un utilisateur tape ? mdp dans la fenêtre d'exécution ? Il récupère le précieux mot de passe.
    A minima, il faudrait au moins mettre un nom de constante moins évident et utiliser une fonction de cryptage/décryptage, même quelque chose d'artisanal très simple comme un chiffrement par décalage.
    Lire ceci : https://fr.wikipedia.org/wiki/Chiffr..._d%C3%A9calage

    Mais, comme je l'ai dit, tout ça ne résistera pas à une petite recherche dans n'importe quel moteur de recherche si l'utilisateur avec un minimum de détermination.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/11/2010, 16h32
  2. [WS 2008 R2] définir un mot de passe à l'aide de ldifde
    Par kusanagi79 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 26/05/2010, 09h47
  3. [Sécurité] Définir un mot de passe
    Par liloupisou dans le forum Langage
    Réponses: 4
    Dernier message: 24/07/2007, 13h42
  4. Définir un mot de passe Access
    Par Chatbour dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 10/12/2006, 23h41
  5. [Linux] Définir le mot de passe root
    Par webrider dans le forum Installation
    Réponses: 4
    Dernier message: 11/08/2006, 18h13

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