demande de mot de pass à l'ouverture d'une macro

Alex550445

XLDnaute Junior
Bonjour,

je voudrais bloquer l'ouverture de ma macro par un mot de pass.
j'ai trouvé ca :

Option Explicit
Dim motdepassevrai As String
Dim motdepasseboite As String

Sub MDP()
motdepassevrai = "oui"
motdepasseboite = InputBox("Tapez le mot de passe")
If motdepasseboite <> motdepassevrai Then
Exit Sub
End If
End Sub

Mais comment faire pour que le mot de pass taper ne s'affiche pas à l'écran, j'ai lu qu'avec une inputbox on ne pouvait pas, ya t'il une autre possibilité ?

d'avance merci
 

Staple1600

XLDnaute Barbatruc
Re : demande de mot de pass à l'ouverture d'une macro

Re



Tu insères un userform dans ton classeur
ALT+F11 --> Insérer UserForm
Tu y ajoutes un TextBox

Quand tu sélectionnes ce textbox , tu regardes en bas à droite
de l'écran la fenêtre [Propriétés]
Dans l'onglet [Alphabétique]
Et la tu cherches PasswordChar
et tu saisi *

Pour finir dans le code de l'userform
mettre le code VBA adpaté du tien

(Le temps de déjeuner et je posterai un exemple)
 

Staple1600

XLDnaute Barbatruc
Re : demande de mot de pass à l'ouverture d'une macro

Re


Il faudrait peaufiner le code pour empêcher de fermer l'userform
en cliquant sur la croix
(tu trouveras des exemples de code sur le forum.)

Pour lancer l'userform à l'ouverture
Mettre

UserForm1.Show

Dans WorkBook_Open()
 
Dernière édition:

Alex550445

XLDnaute Junior
Re : demande de mot de pass à l'ouverture d'une macro

J'ai réussi a faire ma macro, j'ai enlevé la croix mais je voudrai pouvoir quitter la textbox avec un bouton 'Quitter' :

Private Sub Quitter_Click()
'permet de fermer l'userform
Unload UserForm1
End Sub

mon problème c'est que si je ferme ma textbox ma macro se lance !! comment faire pour quitter ma textbox sans lancer ma macro qui en découle ?
Si jamais je ne met pas de bouton quitter, impossible de fermer mon fichier sans mettre le bon mot de pass !!

Mon autre soucis, c'est que mon mot de pass est gardé en memoire à la prochaine ouverture de ma textbox comment faire pour vider le champ ?

D'avance merci
 

Alex550445

XLDnaute Junior
Re : demande de mot de pass à l'ouverture d'une macro

Private Sub Quitter_Click()
'permet de fermer l'userform
Unload UserForm1
End Sub




Private Sub Valider_Click()
Dim mot_de_passe As String
mot_de_passe = "123"
If TextBox1.Text <> mot_de_passe Then
MsgBox "Mauvais mot de passe"
Else
MsgBox "Mot de passe OK"
Me.Hide
End If
End Sub

J'ai mis : UserForm1.Show au début de ma macro

merci
 
Dernière édition:

Discussions similaires

Réponses
6
Affichages
204
Réponses
5
Affichages
408
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 230
Messages
2 086 427
Membres
103 207
dernier inscrit
Michel67