Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment intercepter le "Annuler" sur la fenetre de Protection

4 réponses
Avatar
Jed
Bonjour à tous,

D'abord Une bonnée année 2008 à tous ! (je suis encore dans les temps ;-)

J'aimerai savoir comment je peux coder l'evenement click sur la fenetre de
saisie de mot de passe lors d'une protection de document Excel 2000 ?

Lorsque je fais un :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If

J'ai un ecran me permettant de saisir le mot de passe mais j'aimerai coder
quelque chose si l'utilisateur clique sur "Annuler". Comment puis
intercepter cet evenement?

Merci de votre aide.

Cdlt
Jed

4 réponses

Avatar
FFO
Salut Jed
Aprés avoir protégé ta feuille avec le mot de passe "Toto"
Je te propose ce code :

If ActiveSheet.ProtectContents = True Then
If InputBox("Saisissez le mot de passe", "Mot de Passe") = "Toto" Then
ActiveSheet.Unprotect ("Toto")
Else
Ton code .....
End If
End If

Le mot de passe "Toto" à adapter

Celà devrait convenir
Dis moi !!!


Bonjour à tous,

D'abord Une bonnée année 2008 à tous ! (je suis encore dans les temps ;-)

J'aimerai savoir comment je peux coder l'evenement click sur la fenetre de
saisie de mot de passe lors d'une protection de document Excel 2000 ?

Lorsque je fais un :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If

J'ai un ecran me permettant de saisir le mot de passe mais j'aimerai coder
quelque chose si l'utilisateur clique sur "Annuler". Comment puis
intercepter cet evenement?

Merci de votre aide.

Cdlt
Jed


Avatar
Jed
Bonjour FFA,

Merci d'avoir repondu à ma question.
J'ai regardé ta solution mais cela me fait faire bcp de modif. Ce fichier
comporte plusieurs macro compliqués.
et en plus de :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If


Je voulais faire ca aussi :

For Each ctl In CommandBars("Tools").Controls
Name = ctl.Caption

If Name = "Prot&ection" Then
ctl.Enabled = True ' False dans si mauvais mot de passe
End If

Next ctl

Mais je dois faire la deuxieme partie que si l'utilisateur met le bon mot de
passe!!
S'il annule je ne dois pas deproter l'option "Protection"

Merci pour ta reponse



Salut Jed
Aprés avoir protégé ta feuille avec le mot de passe "Toto"
Je te propose ce code :

If ActiveSheet.ProtectContents = True Then
If InputBox("Saisissez le mot de passe", "Mot de Passe") = "Toto" Then
ActiveSheet.Unprotect ("Toto")
Else
Ton code .....
End If
End If

Le mot de passe "Toto" à adapter

Celà devrait convenir
Dis moi !!!


Bonjour à tous,

D'abord Une bonnée année 2008 à tous ! (je suis encore dans les temps ;-)

J'aimerai savoir comment je peux coder l'evenement click sur la fenetre de
saisie de mot de passe lors d'une protection de document Excel 2000 ?

Lorsque je fais un :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If

J'ai un ecran me permettant de saisir le mot de passe mais j'aimerai coder
quelque chose si l'utilisateur clique sur "Annuler". Comment puis
intercepter cet evenement?

Merci de votre aide.

Cdlt
Jed




Avatar
FFO
Rebonjours Jed

A ma connaisance on ne peux pas agir sur le comportement de la boîte de
dialogue généré par Excel lors de la saisie du mot de passe

Seule issue générer sa propre boîte de dialogue qui en fonction du résultat
enclenchera une suite d'instruction

Tu peux peut être associer une variable qui portera une donnée différente en
fonction de la saisie comme ceci :
Déprotéger = "Non"
If ActiveSheet.ProtectContents = True Then
If InputBox("Saisissez le mot de passe", "Mot de Passe") = "Toto" Then
ActiveSheet.Unprotect ("Toto")
Déprotéger = "Oui"
End If
End If

Puis au grés des besoins tes lignes d'instructions peuvent être
conditionnées par l'état de cette variable ainsi :

If Déprotéger = "Oui" Then
Code1....
Else
Code2....
End If

Une autre solution consiste à vérifier l'état de protection de la feuille
aprés la saisie du mot de passe
Si le mot de passe saisi est bon la feuille est déprotégée

ActiveSheet.ProtectContents = False

Si le mot de passe est erroné ou si rien n'est saisi voir annulé la feuille
est toujour protégé :

ActiveSheet.ProtectContents = True

Tu peux donc te servir de cette indication pour dérouler la suite de ton
code ainsi :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If
If ActiveSheet.ProtectContents = False Then
Code1....
Else
Code2....

Avec ces propositions je pense que tu devrais trouver ton bonheur

Dis moi !!!!


Bonjour FFA,

Merci d'avoir repondu à ma question.
J'ai regardé ta solution mais cela me fait faire bcp de modif. Ce fichier
comporte plusieurs macro compliqués.
et en plus de :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If


Je voulais faire ca aussi :

For Each ctl In CommandBars("Tools").Controls
Name = ctl.Caption

If Name = "Prot&ection" Then
ctl.Enabled = True ' False dans si mauvais mot de passe
End If

Next ctl

Mais je dois faire la deuxieme partie que si l'utilisateur met le bon mot de
passe!!
S'il annule je ne dois pas deproter l'option "Protection"

Merci pour ta reponse



Salut Jed
Aprés avoir protégé ta feuille avec le mot de passe "Toto"
Je te propose ce code :

If ActiveSheet.ProtectContents = True Then
If InputBox("Saisissez le mot de passe", "Mot de Passe") = "Toto" Then
ActiveSheet.Unprotect ("Toto")
Else
Ton code .....
End If
End If

Le mot de passe "Toto" à adapter

Celà devrait convenir
Dis moi !!!


Bonjour à tous,

D'abord Une bonnée année 2008 à tous ! (je suis encore dans les temps ;-)

J'aimerai savoir comment je peux coder l'evenement click sur la fenetre de
saisie de mot de passe lors d'une protection de document Excel 2000 ?

Lorsque je fais un :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If

J'ai un ecran me permettant de saisir le mot de passe mais j'aimerai coder
quelque chose si l'utilisateur clique sur "Annuler". Comment puis
intercepter cet evenement?

Merci de votre aide.

Cdlt
Jed






Avatar
Jed
YESSSS!!!! Merci FFO

Ta deuxième solution de test si feuille protegé me va bien.
J'aurais du y penser. On cherche toujours compliqué.
Merci encore... cette solutionme va bien.

Cdlt
Jed


Rebonjours Jed

A ma connaisance on ne peux pas agir sur le comportement de la boîte de
dialogue généré par Excel lors de la saisie du mot de passe

Seule issue générer sa propre boîte de dialogue qui en fonction du résultat
enclenchera une suite d'instruction

Tu peux peut être associer une variable qui portera une donnée différente en
fonction de la saisie comme ceci :
Déprotéger = "Non"
If ActiveSheet.ProtectContents = True Then
If InputBox("Saisissez le mot de passe", "Mot de Passe") = "Toto" Then
ActiveSheet.Unprotect ("Toto")
Déprotéger = "Oui"
End If
End If

Puis au grés des besoins tes lignes d'instructions peuvent être
conditionnées par l'état de cette variable ainsi :

If Déprotéger = "Oui" Then
Code1....
Else
Code2....
End If

Une autre solution consiste à vérifier l'état de protection de la feuille
aprés la saisie du mot de passe
Si le mot de passe saisi est bon la feuille est déprotégée

ActiveSheet.ProtectContents = False

Si le mot de passe est erroné ou si rien n'est saisi voir annulé la feuille
est toujour protégé :

ActiveSheet.ProtectContents = True

Tu peux donc te servir de cette indication pour dérouler la suite de ton
code ainsi :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If
If ActiveSheet.ProtectContents = False Then
Code1....
Else
Code2....

Avec ces propositions je pense que tu devrais trouver ton bonheur

Dis moi !!!!


Bonjour FFA,

Merci d'avoir repondu à ma question.
J'ai regardé ta solution mais cela me fait faire bcp de modif. Ce fichier
comporte plusieurs macro compliqués.
et en plus de :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If


Je voulais faire ca aussi :

For Each ctl In CommandBars("Tools").Controls
Name = ctl.Caption

If Name = "Prot&ection" Then
ctl.Enabled = True ' False dans si mauvais mot de passe
End If

Next ctl

Mais je dois faire la deuxieme partie que si l'utilisateur met le bon mot de
passe!!
S'il annule je ne dois pas deproter l'option "Protection"

Merci pour ta reponse



Salut Jed
Aprés avoir protégé ta feuille avec le mot de passe "Toto"
Je te propose ce code :

If ActiveSheet.ProtectContents = True Then
If InputBox("Saisissez le mot de passe", "Mot de Passe") = "Toto" Then
ActiveSheet.Unprotect ("Toto")
Else
Ton code .....
End If
End If

Le mot de passe "Toto" à adapter

Celà devrait convenir
Dis moi !!!


Bonjour à tous,

D'abord Une bonnée année 2008 à tous ! (je suis encore dans les temps ;-)

J'aimerai savoir comment je peux coder l'evenement click sur la fenetre de
saisie de mot de passe lors d'une protection de document Excel 2000 ?

Lorsque je fais un :

protected = ActiveSheet.ProtectContents
If (protected) Then
ActiveSheet.Unprotect
End If

J'ai un ecran me permettant de saisir le mot de passe mais j'aimerai coder
quelque chose si l'utilisateur clique sur "Annuler". Comment puis
intercepter cet evenement?

Merci de votre aide.

Cdlt
Jed