Mot de passe execute macro

Résolu
Bonisam Messages postés 144 Date d'inscription   Statut Membre Dernière intervention   -  
Bonisam Messages postés 144 Date d'inscription   Statut Membre Dernière intervention   -
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

A voir également:

7 réponses

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
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
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
Utilisateur anonyme
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   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
Bonisam Messages postés 144 Date d'inscription   Statut Membre Dernière intervention   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