Créer un userform pour un mot de passe

Theymis

XLDnaute Nouveau
Bonjour à tous, :)

je tente de créer un userform sur Excel avec trois boutons "une case pour indiquer le mot de passe" une deuxième "valider" et une autre "annuler".

Je vais dans l'onglet "Développeur" puis sur Visual Basic de là je créer un userform qui se nomme UserForm1. Avec la "boite à outils", j'insére dans le userform, un cadre, une zone de texte et deux boutons de commande (valider + annuler).

J'ai donc :
- Frame1 pour le cadre
- TextBox1 pour la zone de texte
- CommandButton1 pour "valider"
- CommandButton2 pour "annuler"

Dans les deux boutons de commande j'ai changer la case "Caption" pour renommer mes deux boutons comme je le voulais.

Ensuite, je clique deux fois sur Feuil1, s'ouvre alors un Classeur1-Feuil1 (Code) où j'ai inscris ça :

Sub Macro1()
UserForm1.Show
End Sub

Private Sub CommandButton1_Click()
TextBox1 = ""
UserForm1.Hide
End Sub

Private Sub CommandButton2_Click()
If TextBox1.Text = "mot-de-passe" Then
'excel
Else: MsgBox ("Le mot de passe est invalide." )
End If
TextBox1 = ""
UserForm1.Hide
End Sub

En fait, j'aimerai qu'en ouvrant mon fichier Excel ce userform s'affiche et que si je rentre le mot de passe correct, ici "excel" e je puisse accéder à la première feuille où je créerai plusieurs onglets et donc que le userform s'efface. Si le mot de passe est invalide qu'un "Le mot de passe est invalide" s'affiche.

Pour le moment j'arrive à afficher le userform mais il ne s'affiche pas directement en ouvrant le fichier. Les boutons ne marchent pas, j'ai tenter de rentrer le mot de passe ou un autre sans succès. Merci pour votre aide
 

MJ13

XLDnaute Barbatruc
Re : Créer un userform pour un mot de passe

Bonjour Theimis, Jean-Marcel

Tu peux tester ce fichier. Attention, seul ce fichier doit être ouvert sous risque de bug si tu te trompe de MDP.

Sinon pour ouvrir l'USFau démarrage, tu dois le placer dans l'évènement Workbook_open de la feuille Thisworkbook.
 

Pièces jointes

  • USF_MDP_MJ.xls
    69.5 KB · Affichages: 136

Theymis

XLDnaute Nouveau
Re : Créer un userform pour un mot de passe

Tout d'abord, merci à tout les deux pour votre réponse.

MJ13, j'ai regardé ce que tu me proposais mais ce n'est pas exactement ce que je recherche. Je n'ai pas besoin de choisir qui a accés à quoi administrateur ou autres.
Je recherche vraiment quelque chose d'assez simple.

Jean-Marcel, ce que tu as fais me convient beaucoup mieux par contre je n'y comprend toujours pas grand chose...
Dois-je mettre pour chaque bouton un "code" ? Je ne vois pas également où tu as mis que si on entre par exemple le mot de passe "excel" et que c'est le bon mot de passe, la boite se ferme.
 

MJ13

XLDnaute Barbatruc
Re : Créer un userform pour un mot de passe

Re

Mon fichier était juste un exemple que j'avais fait il y a longtemps. Mais le plus important c'est cette phrase:

Sinon pour ouvrir l'USF au démarrage, tu dois le placer dans l'évènement Workbook_open de la feuille Thisworkbook.


Pour cela tu tapes Alt+F11, puis dans l'objet Thisworbook, tu dois pouvoir trouver le Worbook_Open.

Sinon envoie ton fichier, c'est quand même plus simple quand on parle de Userform.
 

Pièces jointes

  • Workbook_Open.jpg
    Workbook_Open.jpg
    22.9 KB · Affichages: 79
Dernière édition:

Theymis

XLDnaute Nouveau
Re : Créer un userform pour un mot de passe

Désolée, je n'ai pas compris ce que tu me dis te faire. J'arrive sur une fenêtre qui affiche cela :

Private Sub Workbook_Open()

End Sub

Je met donc ça ?

Private Sub Workbook_Open()

Userform1.show

End Sub
 

MJ13

XLDnaute Barbatruc
Re : Créer un userform pour un mot de passe

Re

Pour moi, XLD, n'est pas un centre de formation :eek:.

Donc le mieux serait de joindre ton fichier sans données confidentielles. Je ne pourais pas poursuivre, mais d'autres comme Jean-Marcel :), par exemple, pourront t'aider.
 

MJ13

XLDnaute Barbatruc
Re : Créer un userform pour un mot de passe

Re

Bon voici mon fichier avec l'auto_open (Administrateur, MDP = a) et le masquage de l'application au démarrage). Ainsi, tu comprendras mieux :).
 

Pièces jointes

  • USF_MDP_MJ_Auto_OPen.xls
    78.5 KB · Affichages: 100

Theymis

XLDnaute Nouveau
Re : Créer un userform pour un mot de passe

MJ13, je crois avoir compris comment afficher la fenêtre avec le mot de passe, merci.

Cependant contrairement à ce que tu as fait la mienne reste bloquée, je ne peux la fermer et le bouton annuler ne marche pas. Je vais tenter de revoir les codes que j'ai mis. Car c'est surtout un copié-collé que j'ai fait donc il me faut encore les comprendre.

Merci de ta patience.
 

Pièces jointes

  • TEST.xlsm
    17.9 KB · Affichages: 53
  • TEST.xlsm
    17.9 KB · Affichages: 65
  • TEST.xlsm
    17.9 KB · Affichages: 64

MJ13

XLDnaute Barbatruc
Re : Créer un userform pour un mot de passe

Re

Cependant contrairement à ce que tu as fait la mienne reste bloquée, je ne peux la fermer et le bouton annuler ne marche pas. Je vais tenter de revoir les codes que j'ai mis. Car c'est surtout un copié-collé que j'ai fait donc il me faut encore les comprendre.

Merci de ta patience.

Pour ton problème, il faudrait voir avec Jean-Marcel car son code chez moi plante :eek:. Sinon évite de mettre l'application masquée, car, en cas de bug, il faut fermer Excel avec Ctrl+Alt+Suppr.
 

MJ13

XLDnaute Barbatruc
Re : Créer un userform pour un mot de passe

Re

Voici la correction de l'exercice :eek:.

Attention en VBA, toute faute de frappe est à proscrire. Tu avais écrit initilayse au lieu de initialize. D'où l'intérêt de cliquer sur les petites flèches en haut à droite pour avoir le bon terme de l'évènement.
 

Pièces jointes

  • TEST2.xlsm
    23.3 KB · Affichages: 82
  • TEST2.xlsm
    23.3 KB · Affichages: 88
  • TEST2.xlsm
    23.3 KB · Affichages: 89

MJ13

XLDnaute Barbatruc
Re : Créer un userform pour un mot de passe

Re

Sinon pour tous ceux qui se sont fait avoir avec l'application Excel qui se masque, voici un petit script à copier dans le bloc note, et que vous enregistrerez sous le nom AfficheExcel.vbs: et que vous lancerez en double-cliquant dessus (notons que cela fonctionne aussi sous Word) :).

Code:
'XLcheck.vbs
' Find an invisible instance of Excel
' from Rob Bruce

Dim objXL,objWD, strMessage

On Error Resume Next

' Try to grab a running instance of Excel:
Set objXL = GetObject(, "Excel.Application")
Set objXL = GetObject(, "Excel.Application")
'Set objWD = GetObject(, "Word.Application")
'Set objWD = GetObject(, "Word.Application")
'objWD.Visible = true
objXL.Visible = true
sendkeys("~")
' End of VBS code
 

Theymis

XLDnaute Nouveau
Re : Créer un userform pour un mot de passe

Super merci beaucoup, les boutons valider et annuler marchent trés bien. Je ferais attention à l'ortographe la prochaine fois :)

Si le mot de passe est incorrect, j'ai mis qu'un message devait s'afficher. Le message s'affiche bien mais cela m'envoye quand même sur la feuille Excel.

If TxtMotDePasse.Value = "mom" Then Unload UserForm1 Else MsgBox "Le mot de passe est incorrect"
Application.Visible = True
End
End Sub

Je crois que je dois modifier le code ci-dessous mais je ne sais pas quelle commande rajouter. En fait j'aimerai que si le message "le mot de passe est incorrect" et que j'appuye sur ok alors cela me raméne vers le userform pour pouvoir entrer à nouveau le mot de passe.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 816
Messages
2 092 360
Membres
105 378
dernier inscrit
y07