Mot de passe execute macro

Résolu
Bonisam Messages postés 150 Statut Membre -  
Bonisam Messages postés 150 Statut Membre -
Bonjour,

Je voudrais savoir s'il est possible de mettre un mot de passe sur un bouton
executant une macro, de façon à n'autoriser que les détenteurs du mot de
passe à pouvoir lancer cette macro.

je pense à un comportement du style :
- Clic sur le bouton
- Fenètre d'authentification
Mot de passe correct
Execution de la macro
Mot de passe incorrect
Message d'avertissement
Fin de macro

Merci pour tout
Mes respects
Bonisam

7 réponses

  1. Utilisateur anonyme
     
    Bonjour,

    Avec la fonction inputbox, ce n'est pas possible. Il faut passer par un formulaire mais c'est plus compliqué.
    Il faut créer une boîte de dialogue personnalisée (dans Visual Basic, à gauche, clic droit, insertion, UserForm)
    Le formulaire doit avoir une zone de texte (avec PasswordChar égal à * dans Propriétés) et un bouton "OK" qui a ce code :

    If TextBox1.Text <> "hiver" Then
    MsgBox "Mot de passe incorrect"
    Else

    Call [Module1].macro1
    End If
    Unload Me

    Le bouton OK de la boîte appelle la macro (ici "macro1" dans "module 1") si le code est correct.

    Dans la feuille, un bouton fait apparaît la boîte de dialogue avec le code UserForm1.Show

    Un exemple de boîte de dialogue est donné ici

    https://www.excel-downloads.com/threads/masquer-la-saisie-dans-un-inpubox.26788/

    Il suffit d'importer UserForm1 dans votre classeur, et changer le code du bouton OK
    1
  2. Utilisateur anonyme
     
    Bonjour,

    Je pense avoir la solution (en vba, s'il s'agit bien de vba).

    Exemple avec le mot de passe Hiver
    Si le mot de passe est erroné, la fonction s'arrête. Sinon, le traitement s'effectue (exemple : cellule A1 = 3)

    Private Sub CommandButton1_Click()

    Dim strPw As String
    strPw = "Hiver"

    If InputBox("Saisissez le mot de passe", "Accès à la macro") <> strPw Then
    MsgBox ("Mot de passe erroné")
    Exit Sub
    Else
    MsgBox ("Mot de passe correct")
    End If

    Range("A1") = 3

    End Sub
    0
  3. Bonisam
     
    Bonjour,

    Merci pour la contribution mais j'amairais posé une question de savoir où placé ce code. Par exemple dans la mon cas je voudrais que le mot de passe soit demandé à l'execution d'une macro dont la procedure est la suivante :
    Sub Macro1()
    '
    ' Macro1 Macro
    '

    '
    Windows("MES PRODUITS.xlsm").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close
    End Sub

    Merci pour votre aide
    Mes respects
    Bonisam
    0
  4. Utilisateur anonyme
     
    Bonjour,
    La demande de mot de place se place au début de la macro après Sub Macro 1 ()
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Bonisam Messages postés 150 Statut Membre 1
     
    Bonjour Grop,

    Juste vous dire grand merci pour votre aide. ça marche 5/5.
    Merci pour tout
    Mes respects
    Bonisam
    0
  7. Bonisam Messages postés 150 Statut Membre 1
     
    Bonjour Grop,

    Permettez moi de rebondir un peu sur votre procedure mot de passe execute macro.
    J'aimerais savoir s'il était possible de ne pas affiché le mot de passe en clair.
    Par exemple mot de passe "hiver". A l'execution de la macro ça demande le mot de passe mais en le saisissant ça s'ecrit clairement "hiver". est ce qu'il est possible quand tapant "hiver" ça s'affiche "****" de tel sorte que même quelqu'un à coté ne puisse pas connaitre les lettres du mot de passe.

    Merci pour tout
    Mes respects
    Bonisam
    0
  8. Bonisam Messages postés 150 Statut Membre 1
     
    Bonjour Grop,

    C'est génial, ça marche 5/5.
    Merci sincèrement une fois de plus vous m'avez sauvez.
    Merci pour tout
    Mes respects
    Bonisam
    0