Userform with password [Résolu]

shadowskill67 15 Messages postés mercredi 10 décembre 2008Date d'inscription 30 octobre 2009 Dernière intervention - 8 juin 2009 à 14:50 - Dernière réponse : shadowskill67 15 Messages postés mercredi 10 décembre 2008Date d'inscription 30 octobre 2009 Dernière intervention
- 10 juin 2009 à 12:51
bonjour a toutes et a tous,

j'aimerais savoir, j'ai créer un userform contenant un textbox et un commandbutton. l'action ne peu s'acomplire le temps que la valeur du textbox ne correspond pas a la valeur du password.
MAIS
j'ai une faille dans mon petit programme.
de cette fenètre userform si le mot de passe n'est pas correctement entrée on ne peu accédez, mon problème est en cliquant sur la croix de cette fenètre pour quitter l'application. l'action s'accomplie.

mon action est :
je n'autorise pas l'accès si le password n'est pas correct et je n'active pas les 3 commandbuttons.
en fermant la fenètre par cette fameuse croix les commandbutton s'active. comment faire pour que cela ne se produise pas???

voici mon code :

Private Sub CommandButton1_Click()
If TextBox1.Value = "aa" Then
Unload Me
Else
MsgBox ("You Entered A Wrong Password . Please Take Again"), vbCritical
End If
End Sub

merci d'avance
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 8 juin 2009 à 22:31
3
Merci
comment doit-on deviner sans connaître l'autre fenêtre, NOUS ???!!!!

on (nous lecteurs, et toi) se fiche de se qui se passe à la fermeture, puisque de par le fait, rien ne doit être lié à la fermeture

Merci PCPT 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 119 internautes ce mois-ci

Commenter la réponse de PCPT
Meilleure réponse
shadowskill67 15 Messages postés mercredi 10 décembre 2008Date d'inscription 30 octobre 2009 Dernière intervention - 10 juin 2009 à 12:51
3
Merci
rien a voir sur la protection de la feuille ...

j'ai trouver la solution

Private Sub ToggleButton1_Click() 'Locked/Unlocked'
If ToggleButton1.Value = False Then
ToggleButton1.Caption = "Locked"
ActiveSheet.Protect Password:="password"
ActiveSheet.CommandButton1.Enabled = False 'Creat New Copy'
ActiveSheet.CommandButton2.Enabled = False 'Delete Line Selected'
ActiveSheet.CommandButton3.Enabled = False 'Creat New Copy'
Else
ToggleButton1.Caption = "Unlocked"
UserForm1.Show
End If
End Sub

+ l'action suivante:

Private Sub CommandButton1_Click()
If TextBox1.Value = "password" Then
ActiveSheet.CommandButton1.Enabled = True 'Creat New Copy'
ActiveSheet.CommandButton2.Enabled = True 'Delete Line Selected'
ActiveSheet.CommandButton3.Enabled = True 'Creat New Copy'
ActiveSheet.Unprotect Password:="password"
Unload Me
Else
MsgBox ("You Entered A Wrong Password . Please Take Again"), vbCritical
End If
End Sub

Merci shadowskill67 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 119 internautes ce mois-ci

Commenter la réponse de shadowskill67
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 8 juin 2009 à 15:13
0
Merci
Bonjour,

A mon avis tu t'y prend mal, tu ne peux pas empecher l'utilisateur de fermer une fenêtre ca si celui ci ne se souvient plus du mot de passe, il restera avec le prog ouvert le temps de la session.

Tu devrais créer un formulaire pour la validation de mot de passe :

Public Class FrmPasswrd

Private Sub cmd_Ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Ok.Click 
 
    If txt_Pass <> My.Settings.PassWord Then 
        MsgBox("Mauvais mot de passe", MsgBoxStyle.Exclamation)
        Exit Sub
    Else
        Me.DialogResult = Windows.Forms.DialogResult.OK
        Me.Close
    End If

End Sub
 
PrivateSub cmd_Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_Cancel.Click 
   
    Me.DialogResult = Windows.Forms.DialogResult.Cancel
    Me.Close() 

End Sub

End Class

Puis appelé celui-ci dans ton formulaire principale :

Private Sub FrmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
   
If FrmPasswrd.ShowDialog <> Windows.Forms.DialogResult.OK Then
        Application.Exit() 
    Else
        Call UnlockControls 'Fonction qui dévérouille tes contrôles

End If

End Sub

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Commenter la réponse de Mayzz
shadowskill67 15 Messages postés mercredi 10 décembre 2008Date d'inscription 30 octobre 2009 Dernière intervention - 8 juin 2009 à 15:41
0
Merci
merci je vais testez
Commenter la réponse de shadowskill67
shadowskill67 15 Messages postés mercredi 10 décembre 2008Date d'inscription 30 octobre 2009 Dernière intervention - 8 juin 2009 à 15:50
0
Merci
oui mais la question est ... si je met un commandbutton "close" l'application se ferme mais active mes 3 commandbuttons als ke le but est de les laisser bloquer ... et dans mon cas je n'est seulement que le commandbutton "OK" pour valider le password ... et pour quitter l'application si l'utilisateur ne conner pas le password cliquerra automatiquement sur cette petite croix ... d'ou mon bsoin de laisser bloquer mes commandbuttons ....

j'ai ésseillez le code que tu ma envoyer ... je susi encore sous excel 2003 et il m'affiche des ligne en rouge ... après je ne sais pas si j'ai bien fait d'écrire une partie dans "module" et l'autre partie a mon commandbutton "OK" pour appeler la commande ... ai-je bien fait ... ???
Commenter la réponse de shadowskill67
Mayzz 2859 Messages postés mardi 15 avril 2003Date d'inscription 26 novembre 2013 Dernière intervention - 8 juin 2009 à 15:58
0
Merci
C'est nomale que cela ne fonctionne pas, c'est un code en vb 2005 t'es sous exel 2003 (rien à voir)
 tu as posté dans la mauvaise catégorie :

Vous êtes ici : Thèmes / VB.NET et VB 2005 / Divers / Débutants / userform with password

Si un admin passe pas la ! Merci ;)

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Commenter la réponse de Mayzz
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 8 juin 2009 à 16:21
0
Merci
salut,
(topic déplacé vers VBA)

si VRAI => quitter
sinon => message

en effet il ne faut pas quitter mais faire l'action VRAI uniquement dans ce cas VRAI
c'est donc dans cette partie que tu dois dégriser les boutons
++
Commenter la réponse de PCPT
shadowskill67 15 Messages postés mercredi 10 décembre 2008Date d'inscription 30 octobre 2009 Dernière intervention - 8 juin 2009 à 21:41
0
Merci
okey
puis-je avoir une petite aide du code a écrire ?
cette fonction du message qui s'affiche fonctionne mais je ne comprend pas comment l'affecter a le fermeture de cette fenêtre (userform)
Commenter la réponse de shadowskill67
garion28 1570 Messages postés mardi 16 juin 2009Date d'inscription 24 mars 2011 Dernière intervention - 10 juin 2009 à 12:37
0
Merci
Pourquoi tu ne mettrai pas une protection sur l'ensemble du fichier ? (outil protection etc...)

ensuite tu fait une fonction de verouillage a chaque fermeture du classeur:
Sheets("donnees").Protect Password:="ton mdp", DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets("menu").Select

ensuite ton formulaire de deverouillage contiendra le code suivante

Sheets("donnees").Unprotect ("ton mdp")
Commenter la réponse de garion28

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.