OVH Cloud OVH Cloud

(Pas urgent) motS de passe

9 réponses
Avatar
Patrick Bastard
Bonsoir, Chers contributeurs bénévoles
Une p'tite dernière (promis...) pour aujourd'hui :

J'essaie d'adapter ce code de Frédéric Sigonneau à mes besoins :
Accepter plusieurs mots de passe, et en fonction du mot de passe saisi,
effectuer des actions différentes.
J'ai essayé avec
okPswd = GetPassword("topsecret", 3) , ("trèssecret",3) : *NOK*
okPswd = GetPassword("topsecret", 3)or ("trèssecret",3) : *NOK*
Je subodore l'utilisation d'une matrice, mais là, ça dépasse encore de loin
mes compétences...

J'ai donc besoin, une fois encore de vos lumières. Par avance, Merci

Le code honteusement copié sur le site de Frédéric (que je joins en entier,
car il peut servir à d'autres...) :

**************************************************************************
'Attribute VB_Name = "DemanderMotDePasse"
'demander un mot de passe et limiter le nombre d'essai pour fournir le mot
de passe correct

Sub TestMotPasse()
Dim okPswd As Boolean

okPswd = GetPassword("topsecret", 3)
' MsgBox okPswd
If okPswd Then
'do what you want
Else
'do something else that you want!
End If

End Sub

Function GetPassword(CorrectPswd As String, MaxTimes As Long) As Boolean
'Dave Peterson, mpep
Dim Pswd As String
Dim TryTimes As Long

TryTimes = 1
GetPassword = False

Do
Pswd = InputBox("Attempt #" & TryTimes & " of " & MaxTimes _
& ". What's the password?", _
"Enter Password")

If Pswd = "" Then
Exit Function
End If

If Pswd <> CorrectPswd Then
TryTimes = TryTimes + 1
If TryTimes <= MaxTimes Then
MsgBox "Please try again"
End If
Else
GetPassword = True
MsgBox "Mot de passe correct !"
Exit Function
End If
Loop Until TryTimes > MaxTimes

End Function
*************************************

--
Bien cordialement,
=====================================
P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse

9 réponses

Avatar
Patrick Fredin
Bonjour,

Si j'ai bien compris le code de Frédéric, il ne sert pas à faire des actions
en fonction du mot de passe mais à ne permettre que 3 essais. Ensuite, si le
mot de passe est correct on fait quelque chose, si il est incorrect, on fait
autre chose.

Mais si tu veux pouvoir accepter plusieurs mots de passe, il faut avoir une
liste de ces mots de passe. Tu boucles sur cette liste et le compteur au
moment où le mot de passe est trouvé peut te donner une sorte d'index des
actions à effectuer.

J'espère que c'est clair, sinon je serai plus explicite.

--
Patrick

"Patrick Bastard" <bastardp"chez"free.fr> wrote in message
news:
Bonsoir, Chers contributeurs bénévoles
Une p'tite dernière (promis...) pour aujourd'hui :

J'essaie d'adapter ce code de Frédéric Sigonneau à mes besoins :
Accepter plusieurs mots de passe, et en fonction du mot de passe saisi,
effectuer des actions différentes.
J'ai essayé avec
okPswd = GetPassword("topsecret", 3) , ("trèssecret",3) : *NOK*
okPswd = GetPassword("topsecret", 3)or ("trèssecret",3) : *NOK*
Je subodore l'utilisation d'une matrice, mais là, ça dépasse encore de
loin
mes compétences...

J'ai donc besoin, une fois encore de vos lumières. Par avance, Merci

Le code honteusement copié sur le site de Frédéric (que je joins en
entier,
car il peut servir à d'autres...) :

**************************************************************************
'Attribute VB_Name = "DemanderMotDePasse"
'demander un mot de passe et limiter le nombre d'essai pour fournir le mot
de passe correct

Sub TestMotPasse()
Dim okPswd As Boolean

okPswd = GetPassword("topsecret", 3)
' MsgBox okPswd
If okPswd Then
'do what you want
Else
'do something else that you want!
End If

End Sub

Function GetPassword(CorrectPswd As String, MaxTimes As Long) As Boolean
'Dave Peterson, mpep
Dim Pswd As String
Dim TryTimes As Long

TryTimes = 1
GetPassword = False

Do
Pswd = InputBox("Attempt #" & TryTimes & " of " & MaxTimes _
& ". What's the password?", _
"Enter Password")

If Pswd = "" Then
Exit Function
End If

If Pswd <> CorrectPswd Then
TryTimes = TryTimes + 1
If TryTimes <= MaxTimes Then
MsgBox "Please try again"
End If
Else
GetPassword = True
MsgBox "Mot de passe correct !"
Exit Function
End If
Loop Until TryTimes > MaxTimes

End Function
*************************************

--
Bien cordialement,
==================================== > P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse





Avatar
Patrick Bastard
Bonsoir, *Patrick*.

Et merci de ton aide.

Ma question est justement :
"comment, quand et où définir les différents mots de passe autorisés pour
ensuite les récupérer pour agir en fonction de celui qui a été rentré"

Je m'y perds un peu -beaucoup ?- avec la fonction GetPassword de Dave
Peterson et les CorrectPsws, okPswd et Pswd de Frédéric.


Bien cordialement,

Patrick.


Si j'ai bien compris le code de Frédéric, il ne sert pas à faire des
actions en fonction du mot de passe mais à ne permettre que 3 essais.
Ensuite, si le mot de passe est correct on fait quelque chose, si il
est incorrect, on fait autre chose.

Mais si tu veux pouvoir accepter plusieurs mots de passe, il faut
avoir une liste de ces mots de passe. Tu boucles sur cette liste et
le compteur au moment où le mot de passe est trouvé peut te donner
une sorte d'index des actions à effectuer.

J'espère que c'est clair, sinon je serai plus explicite.



Avatar
Patrick Fredin
Tu mets les mots de passe où tu veux :
- en "dur" dans le code
- sur une feuille Excel (qui sera masquée bien sûr)

--
Patrick

"Patrick Bastard" <bastardp"chez"free.fr> wrote in message
news:
Bonsoir, *Patrick*.

Et merci de ton aide.

Ma question est justement :
"comment, quand et où définir les différents mots de passe autorisés pour
ensuite les récupérer pour agir en fonction de celui qui a été rentré"

Je m'y perds un peu -beaucoup ?- avec la fonction GetPassword de Dave
Peterson et les CorrectPsws, okPswd et Pswd de Frédéric.


Bien cordialement,

Patrick.


Si j'ai bien compris le code de Frédéric, il ne sert pas à faire des
actions en fonction du mot de passe mais à ne permettre que 3 essais.
Ensuite, si le mot de passe est correct on fait quelque chose, si il
est incorrect, on fait autre chose.

Mais si tu veux pouvoir accepter plusieurs mots de passe, il faut
avoir une liste de ces mots de passe. Tu boucles sur cette liste et
le compteur au moment où le mot de passe est trouvé peut te donner
une sorte d'index des actions à effectuer.

J'espère que c'est clair, sinon je serai plus explicite.







Avatar
Patrick Bastard
Merci, Patrick

Dur, dur... Je m'y recolle.
8-)
--
Bien cordialement,
==================================== P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse



Tu mets les mots de passe où tu veux :
- en "dur" dans le code
- sur une feuille Excel (qui sera masquée bien sûr)

Ma question est justement :
"comment, quand et où définir les différents mots de passe autorisés
pour ensuite les récupérer pour agir en fonction de celui qui a été
rentré"

Je m'y perds un peu -beaucoup ?- avec la fonction GetPassword de Dave
Peterson et les CorrectPsws, okPswd et Pswd de Frédéric.




Avatar
Pounet95
Bonsoir Patrick,
Pourquoi ne pas créer un userform tout bête avec un textbox et un bouton ?
Tu utilises la structure select case qui te permets de mettre un bon nombre
de cas.
En plus dans le textbox tu peux cacher la saisie de l'utilisateur par un
symbole de ton choix
grace à la propriété PasswordChar

Exemple :
* module du userform ****
Dim nb As Integer 'nbre essais

Private Sub CommandButton1_Click()
nb = nb + 1
Select Case TextBox1.Text
Case "toto"
MsgBox "Exécute procédure 1"
Case "tata"
MsgBox "Exécute procédure 2"
Case "albert"
' .........
Case Else
If nb < 3 Then
MsgBox "Encore " & 3 - nb & " essai(s)"
TextBox1.Text = ""
Exit Sub
Else
MsgBox "Accès bloqué "
End If
End Select
Hide
End Sub

Private Sub UserForm_Initialize()
nb = 0
Show
End Sub


--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Patrick Bastard" <bastardp"chez"free.fr> a écrit dans le message de news:

Bonsoir, Chers contributeurs bénévoles
Une p'tite dernière (promis...) pour aujourd'hui :

J'essaie d'adapter ce code de Frédéric Sigonneau à mes besoins :
Accepter plusieurs mots de passe, et en fonction du mot de passe saisi,
effectuer des actions différentes.
J'ai essayé avec
okPswd = GetPassword("topsecret", 3) , ("trèssecret",3) : *NOK*
okPswd = GetPassword("topsecret", 3)or ("trèssecret",3) : *NOK*
Je subodore l'utilisation d'une matrice, mais là, ça dépasse encore de
loin
mes compétences...

J'ai donc besoin, une fois encore de vos lumières. Par avance, Merci

Le code honteusement copié sur le site de Frédéric (que je joins en
entier,
car il peut servir à d'autres...) :

**************************************************************************
'Attribute VB_Name = "DemanderMotDePasse"
'demander un mot de passe et limiter le nombre d'essai pour fournir le mot
de passe correct

Sub TestMotPasse()
Dim okPswd As Boolean

okPswd = GetPassword("topsecret", 3)
' MsgBox okPswd
If okPswd Then
'do what you want
Else
'do something else that you want!
End If

End Sub

Function GetPassword(CorrectPswd As String, MaxTimes As Long) As Boolean
'Dave Peterson, mpep
Dim Pswd As String
Dim TryTimes As Long

TryTimes = 1
GetPassword = False

Do
Pswd = InputBox("Attempt #" & TryTimes & " of " & MaxTimes _
& ". What's the password?", _
"Enter Password")

If Pswd = "" Then
Exit Function
End If

If Pswd <> CorrectPswd Then
TryTimes = TryTimes + 1
If TryTimes <= MaxTimes Then
MsgBox "Please try again"
End If
Else
GetPassword = True
MsgBox "Mot de passe correct !"
Exit Function
End If
Loop Until TryTimes > MaxTimes

End Function
*************************************

--
Bien cordialement,
==================================== > P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse





Avatar
Patrick Bastard
Bonsoir, Patrick.

Veux-tu que je t'envois un exemple ?


J'accepte avec le plus grand plaisir, et t'en remercie.


--
Bien cordialement,
==================================== P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse

Une foule de conseils utiles sur le site de Misange :
http://www.excelabo.net

Avatar
Patrick Fredin
Veux-tu que je t'envois un exemple ?

--
Patrick

"Patrick Bastard" <bastardp"chez"free.fr> wrote in message
news:%
Merci, Patrick

Dur, dur... Je m'y recolle.
8-)
--
Bien cordialement,
==================================== > P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse



Tu mets les mots de passe où tu veux :
- en "dur" dans le code
- sur une feuille Excel (qui sera masquée bien sûr)

Ma question est justement :
"comment, quand et où définir les différents mots de passe autorisés
pour ensuite les récupérer pour agir en fonction de celui qui a été
rentré"

Je m'y perds un peu -beaucoup ?- avec la fonction GetPassword de Dave
Peterson et les CorrectPsws, okPswd et Pswd de Frédéric.








Avatar
Patrick Bastard
Bonsoir, *Pounet95*.
*Pour reprendre les termes de ton intervention* -voir en fin de message :

Ta solution est en effet intéressante, et je la garde au chaud.
Pour gagner du temps, et pour éviter de "réinventer le fil à couper le
beurre", je désirais réutiliser le code de Frédéric, que j'avais déjà testé,
mais si la solution que Patrick Fredin se propose de m'envoyer ne
correspondait pas à mon besoin, j'opterai pour la tienne.

Merci en tous cas pour ta proposition.

C'est aussi *CA*, la magie de ce forum : Une question, Deux solutions....

Bien cordialement,

Patrick.


Bonsoir Patrick,
Pourquoi ne pas créer un userform tout bête avec un textbox et un
bouton ? Tu utilises la structure select case qui te permets de
mettre un bon nombre de cas.
En plus dans le textbox tu peux cacher la saisie de l'utilisateur par
un symbole de ton choix
grace à la propriété PasswordChar

Exemple :
* module du userform ****
Dim nb As Integer 'nbre essais

Private Sub CommandButton1_Click()
nb = nb + 1
Select Case TextBox1.Text
Case "toto"
MsgBox "Exécute procédure 1"
Case "tata"
MsgBox "Exécute procédure 2"
Case "albert"
' .........
Case Else
If nb < 3 Then
MsgBox "Encore " & 3 - nb & " essai(s)"
TextBox1.Text = ""
Exit Sub
Else
MsgBox "Accès bloqué "
End If
End Select
Hide
End Sub

Private Sub UserForm_Initialize()
nb = 0
Show
End Sub


Bonsoir, Chers contributeurs bénévoles
Une p'tite dernière (promis...) pour aujourd'hui :

J'essaie d'adapter ce code de Frédéric Sigonneau à mes besoins :
Accepter plusieurs mots de passe, et en fonction du mot de passe
saisi, effectuer des actions différentes.
J'ai essayé avec
okPswd = GetPassword("topsecret", 3) , ("trèssecret",3) : *NOK*
okPswd = GetPassword("topsecret", 3)or ("trèssecret",3) : *NOK*
Je subodore l'utilisation d'une matrice, mais là, ça dépasse encore
de loin
mes compétences...

J'ai donc besoin, une fois encore de vos lumières. Par avance, Merci

Le code honteusement copié sur le site de Frédéric (que je joins en
entier,
car il peut servir à d'autres...) :


**************************************************************************


'Attribute VB_Name = "DemanderMotDePasse"
'demander un mot de passe et limiter le nombre d'essai pour fournir
le mot de passe correct

Sub TestMotPasse()
Dim okPswd As Boolean

okPswd = GetPassword("topsecret", 3)
' MsgBox okPswd
If okPswd Then
'do what you want
Else
'do something else that you want!
End If

End Sub

Function GetPassword(CorrectPswd As String, MaxTimes As Long) As
Boolean 'Dave Peterson, mpep
Dim Pswd As String
Dim TryTimes As Long

TryTimes = 1
GetPassword = False

Do
Pswd = InputBox("Attempt #" & TryTimes & " of " & MaxTimes _
& ". What's the password?", _
"Enter Password")

If Pswd = "" Then
Exit Function
End If

If Pswd <> CorrectPswd Then
TryTimes = TryTimes + 1
If TryTimes <= MaxTimes Then
MsgBox "Please try again"
End If
Else
GetPassword = True
MsgBox "Mot de passe correct !"
Exit Function
End If
Loop Until TryTimes > MaxTimes

End Function
*************************************

--
Bien cordialement,
==================================== >> P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse




Avatar
Jacky
Et bienvenue dans le club des Ferraris
;o))
JJ

"Patrick Bastard" <bastardp"chez"free.fr> a écrit dans le message de
news:
Bonsoir, Chers contributeurs bénévoles
Une p'tite dernière (promis...) pour aujourd'hui :

J'essaie d'adapter ce code de Frédéric Sigonneau à mes besoins :
Accepter plusieurs mots de passe, et en fonction du mot de passe saisi,
effectuer des actions différentes.
J'ai essayé avec
okPswd = GetPassword("topsecret", 3) , ("trèssecret",3) : *NOK*
okPswd = GetPassword("topsecret", 3)or ("trèssecret",3) : *NOK*
Je subodore l'utilisation d'une matrice, mais là, ça dépasse encore de
loin

mes compétences...

J'ai donc besoin, une fois encore de vos lumières. Par avance, Merci

Le code honteusement copié sur le site de Frédéric (que je joins en
entier,

car il peut servir à d'autres...) :

**************************************************************************
'Attribute VB_Name = "DemanderMotDePasse"
'demander un mot de passe et limiter le nombre d'essai pour fournir le mot
de passe correct

Sub TestMotPasse()
Dim okPswd As Boolean

okPswd = GetPassword("topsecret", 3)
' MsgBox okPswd
If okPswd Then
'do what you want
Else
'do something else that you want!
End If

End Sub

Function GetPassword(CorrectPswd As String, MaxTimes As Long) As Boolean
'Dave Peterson, mpep
Dim Pswd As String
Dim TryTimes As Long

TryTimes = 1
GetPassword = False

Do
Pswd = InputBox("Attempt #" & TryTimes & " of " & MaxTimes _
& ". What's the password?", _
"Enter Password")

If Pswd = "" Then
Exit Function
End If

If Pswd <> CorrectPswd Then
TryTimes = TryTimes + 1
If TryTimes <= MaxTimes Then
MsgBox "Please try again"
End If
Else
GetPassword = True
MsgBox "Mot de passe correct !"
Exit Function
End If
Loop Until TryTimes > MaxTimes

End Function
*************************************

--
Bien cordialement,
==================================== > P. Bastard.
Pour me contacter, remplacez "Chez" par @ dans l'adresse