VBA Mot de passe variable

Résolu
Bonjour,

Je planche sur un outil de gestion qui pourra être utilisé par 2 catégories de personnes:
-ceux qui n'ont besoin de toucher qu'à une partie de fichier excel
-et les autres qui peuvent modifier le fichier parce qu'ils le connaissent

Afin de pouvoir afficher certaines feuilles normalement cachées, l'utilisateur doit entrer un mot de passe. J'ai réussi à en imposer un dans le code VBA, cependant ce que j'aimerai faire c'est permettre à l'utilisateur "admin" de modifier ce mot de passe en entrant celui de son choix dans une cellule placée en A2 de la feuille "config".

Pour résumer:
-Si la cellule A2 de la feuille "config" est vide, le mot de passe est "admin" (par exemple)
-Si la cellule A2 de la feuille "config" n'est pas vide, le mot de passe devient la valeur de cette cellule.

Voici le code que j'utilise, bien évidemment il y a quelque chose qui cloche mais je n'arrive pas à savoir quoi, une petite idée? =)

///USERFORM/// 

Private Sub CommandButton3_Click() 
If Sheets("config").Range(A2).Value = "" Then Call Module11.mdp_admin Else Call Module11.mdp_cellule 
End Sub 


///MODULE11/// 
Sub mdp_admin() 
    Mdp = Application.InputBox("Mot de passe", "Entrer le mot de passe") 
    Mdp = "admin" 
        If Mdp <> "admin" Then 
        MsgBox "Mot de passe incorrect1", vbCritical 
        Exit Sub 
        End If 
        'suite de la procédure 
End Sub 
Sub mdp_cellule() 
    Mdp = Application.InputBox("Mot de passe", "Entrer le mot de passe") 
    Mdp = Sheets("config").Range(A2).Value 
        If Mdp <> Sheets("config").Range(A2).Value Then 
        MsgBox "Mot de passe incorrect2", vbCritical 
        Exit Sub 
        End If 
        'suite de la procédure 
End Sub


Merci à vous!

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour,
    pour les deux modules:

    Ne prenez pas la meme variable Mdp pour votre inputbox et pour le mot de passe fixe ou la valeur de cellule
    1. Bonjour, et merci de vous pencher sur mon problème.

      J'ai changé la variable Mdp en Mdp_defaut dans le module11.Sub Mdp_admin et en Mdp_variable dans le module11.Sub Mdp_cellule.

      En fait l'erreur apparaît au lancement de la macro du CommandButton3, j'aurais sûrement dû commencer par là.

      L'erreur est: Erreur définie par l'application ou par l'objet et se rapporte sur ce morceau de code:
      ///USERFORM/// 
      
      Private Sub CommandButton3_Click() 
      If Sheets("config").Range(A2).Value = "" Then Call Module11.mdp_admin Else Call Module11.mdp_cellule 
      End Sub 
      1. Pffff... Non mais quel boulet je fais. L'erreur vient du fait que j'avais oublié les "" de mes Range("A2")...

        Merci encore f894009!