OVH Cloud OVH Cloud

Déroulement de macro sur mot de passe

7 réponses
Avatar
Bastien Ragni
Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un exemple de
petite macro (si, si, petite) dont la suite du déroulement était soumise à
un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de passe
pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est possible je
m'en servirais aussi.
Merci d'avance.
Salut à tous!

7 réponses

Avatar
Pounet95
Bonsoir,
Hier, sur ce forum, fil de Patrick Bastard j'ai écrit ceci .
Voir si cela peut convenir
Bonne soirée


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/
"Bastien Ragni" a écrit dans le message de
news:
Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un exemple de
petite macro (si, si, petite) dont la suite du déroulement était soumise à
un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de passe
pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est possible
je m'en servirais aussi.
Merci d'avance.
Salut à tous!



Avatar
isabelle
bonjour Bastien,

il y a ce code de Frédéric,

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

isabelle


End Function


Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un exemple de
petite macro (si, si, petite) dont la suite du déroulement était soumise à
un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de passe
pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est possible je
m'en servirais aussi.
Merci d'avance.
Salut à tous!


Avatar
Clément Marcotte
Bonjour,

Ce n'est probablement pas cela, mais dans ce cas, il y a une limite de
temps pour saisir:

http://www.01net.com/article/136747.html




"Bastien Ragni" a écrit dans le
message de news:
Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un
exemple de

petite macro (si, si, petite) dont la suite du déroulement était
soumise à

un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de
passe

pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est
possible je

m'en servirais aussi.
Merci d'avance.
Salut à tous!




Avatar
Bastien Ragni
Merci Pounet,
Ta solution m'entraine vers des voies que je ne connais pas encore/du tout:
les userforms. (J'ai commencé à lire un peu sur le sujet, mais je ne
parviens même pas à l'afficher correctement autrement qu'en mode création.)
Mais ta solution réponds à un problème que je n'avais pas posé: il y a 8
utilisateurs, donc 8 mots de passe, donc 8 procédures différentes possibles.
C'est extra!
Merci beaucoup.
"Pounet95" a écrit dans le message de news:

Bonsoir,
Hier, sur ce forum, fil de Patrick Bastard j'ai écrit ceci .
Voir si cela peut convenir
Bonne soirée


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/
"Bastien Ragni" a écrit dans le message
de news:
Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un exemple de
petite macro (si, si, petite) dont la suite du déroulement était soumise
à un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de
passe pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est possible
je m'en servirais aussi.
Merci d'avance.
Salut à tous!







Avatar
Bastien Ragni
Merci Isabelle,
Dans Excelabo j'ai utilisé la recherche par mot de passe, et j'ai fouillé du
coté du VB, sans trouver ce que je souhaitais.
Je n'ai pas pensé à la fonction password que j'avais "croisé" parfois.
Dans le code, VB m'indique une erreur de syntaxe sur la ligne: Loop Until
TryTimes > MaxTimes ?

"isabelle" a écrit dans le message de news:

bonjour Bastien,

il y a ce code de Frédéric,

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

isabelle


End Function


Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un exemple de
petite macro (si, si, petite) dont la suite du déroulement était soumise
à
un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de
passe
pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est possible
je
m'en servirais aussi.
Merci d'avance.
Salut à tous!




Avatar
Bastien Ragni
Bonjour Clément,

Troisième solution differente des 2 autres!
Cela permet de choisir selon les besoins.
Merci beaucoup.
"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Ce n'est probablement pas cela, mais dans ce cas, il y a une limite de
temps pour saisir:

http://www.01net.com/article/136747.html




"Bastien Ragni" a écrit dans le
message de news:
Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un
exemple de

petite macro (si, si, petite) dont la suite du déroulement était
soumise à

un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de
passe

pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est
possible je

m'en servirais aussi.
Merci d'avance.
Salut à tous!







Avatar
Bastien Ragni
G-E-N-I-A-L-!
car simple pour un débutant tel que moi, et pourtant efficace!
M-E-R-C-I Pounet.
"Pounet95" a écrit dans le message de news:

Bonsoir,
Hier, sur ce forum, fil de Patrick Bastard j'ai écrit ceci .
Voir si cela peut convenir
Bonne soirée


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/
"Bastien Ragni" a écrit dans le message
de news:
Bonsoir à tous,

Il y a quelques temps j'avais trouvé (ordinateur individuel)un exemple de
petite macro (si, si, petite) dont la suite du déroulement était soumise
à un mot de passe, avec un compteur des échecs.
Impossible de remettre la main dessus, et je ne sais pas l'exprimer
correctement en VB.
Quelqu'un pourrait-il m'écrire un code capable de demander ce mot de
passe pour poursuivre la macro?
Il n'est pas indispensable qu'il y ait un compteur mais si c'est possible
je m'en servirais aussi.
Merci d'avance.
Salut à tous!