Mot de passe execute macro

Résolu/Fermé
Bonisam Messages postés 144 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 24 avril 2019 - 11 août 2011 à 20:20
Bonisam Messages postés 144 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 24 avril 2019 - 14 août 2011 à 12:48
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

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
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
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
Utilisateur anonyme
12 août 2011 à 17:44
Bonjour,
La demande de mot de place se place au début de la macro après Sub Macro 1 ()
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonisam Messages postés 144 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 24 avril 2019 1
12 août 2011 à 20:47
Bonjour Grop,

Juste vous dire grand merci pour votre aide. ça marche 5/5.
Merci pour tout
Mes respects
Bonisam
0
Bonisam Messages postés 144 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 24 avril 2019 1
13 août 2011 à 11:42
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
Bonisam Messages postés 144 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 24 avril 2019 1
14 août 2011 à 12:48
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