OVH Cloud OVH Cloud

Désactiver un bouton lorsqu'une feuille est protégée

8 réponses
Avatar
guymoreault
Bonjour,

Est-ce que je peux avoir un seul bouton qui indique soit "Activer la
protection" ou bien "Désactiver la protection" en relation avec une
feuille.

Si cela ne se fait pas, alors deux boutons feraient l'affaire (bien
sûr, les deux n'étant pas activés en même temps).

Et pour terminer, si la personne essaie de fermer le fichier et que la
protection n'est pas activée alors il ne peut pas être fermé et la
personne recoie un message lui indiquant qu'elle doit protéger la
feuille avant de quitter.

J'attend vos suggestions et commentaires.
Merci de votre aide!

8 réponses

Avatar
michdenis
Bonjour Guy,


Utilise un bouton de commande issue de la barre d'outils "Formulaire"

Sur ton bouton de commande, Tu inscrire sur ton bouton avant de lancer la macro pour la première fois : Protéger
Feuille

Tu attaches la macro suivante à ton bouton.

'-----------------------------
Sub Bouton_Protection_Feuille()

With Worksheets("Feuil2")
If .Shapes("Bouton 1").OLEFormat.Object.Caption = "Protéger Feuille" Then
.Shapes("Bouton 1").OLEFormat.Object.Caption = "Déprotéger Feuille"
.Protect
Else
.Unprotect
.Shapes("Bouton 1").OLEFormat.Object.Caption = "Protéger Feuille"
End If
End With

End Sub
'-----------------------------


Salutations!





"Guy" a écrit dans le message de news:
Bonjour,

Est-ce que je peux avoir un seul bouton qui indique soit "Activer la
protection" ou bien "Désactiver la protection" en relation avec une
feuille.

Si cela ne se fait pas, alors deux boutons feraient l'affaire (bien
sûr, les deux n'étant pas activés en même temps).

Et pour terminer, si la personne essaie de fermer le fichier et que la
protection n'est pas activée alors il ne peut pas être fermé et la
personne recoie un message lui indiquant qu'elle doit protéger la
feuille avant de quitter.

J'attend vos suggestions et commentaires.
Merci de votre aide!
Avatar
michdenis
Ne pas oublier d'adapter le nom de la feuille !


Salutations!





Utilise un bouton de commande issue de la barre d'outils "Formulaire"

Sur ton bouton de commande, Tu inscrire sur ton bouton avant de lancer la macro pour la première fois : Protéger
Feuille

Tu attaches la macro suivante à ton bouton.

'-----------------------------
Sub Bouton_Protection_Feuille()

With Worksheets("Feuil2")
If .Shapes("Bouton 1").OLEFormat.Object.Caption = "Protéger Feuille" Then
.Shapes("Bouton 1").OLEFormat.Object.Caption = "Déprotéger Feuille"
.Protect
Else
.Unprotect
.Shapes("Bouton 1").OLEFormat.Object.Caption = "Protéger Feuille"
End If
End With

End Sub
'-----------------------------


Salutations!





"Guy" a écrit dans le message de news:
Bonjour,

Est-ce que je peux avoir un seul bouton qui indique soit "Activer la
protection" ou bien "Désactiver la protection" en relation avec une
feuille.

Si cela ne se fait pas, alors deux boutons feraient l'affaire (bien
sûr, les deux n'étant pas activés en même temps).

Et pour terminer, si la personne essaie de fermer le fichier et que la
protection n'est pas activée alors il ne peut pas être fermé et la
personne recoie un message lui indiquant qu'elle doit protéger la
feuille avant de quitter.

J'attend vos suggestions et commentaires.
Merci de votre aide!
Avatar
guymoreault
Merci! et si la personne essaie de quitter et que la feuille n'est pas
protégé, puis-je avoir un message qui indique à la personne qu'elle ne
peut pas quitter le document sans protéger la feuille et du même coup
ne pas fermer le fichier?

Guy
Avatar
michdenis
Bonjour Guy,


Dans le thisWorkbook de ton classeur, copie ceci :

Tu ne pourras pas fermer ton classeur si une des feuilles
de calcul n'est pas protégée.

'---------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.ProtectContents = False Then
MsgBox "Toutes les feuilles doivent être protégées " & _
vbCrLf & "avant de quitter." & vbCrLf & vbCrLf & _
"Appliquer la protection la la feuille : " & Sh.Name
Cancel = True
End If
Next
End Sub
'---------------------------


Salutations!




"Guy" a écrit dans le message de news:
Merci! et si la personne essaie de quitter et que la feuille n'est pas
protégé, puis-je avoir un message qui indique à la personne qu'elle ne
peut pas quitter le document sans protéger la feuille et du même coup
ne pas fermer le fichier?

Guy
Avatar
James
Denis,

j'ai une question par rapport a ta premiere reponse, le
bouton protéger ne fonctionne pas et donner
l'erreur 'Runtime Error 9'. Est-ce que tu sais pourquoi?

Merci


-----Message d'origine-----
Bonjour Guy,


Dans le thisWorkbook de ton classeur, copie ceci :

Tu ne pourras pas fermer ton classeur si une des feuilles
de calcul n'est pas protégée.

'---------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.ProtectContents = False Then
MsgBox "Toutes les feuilles doivent être
protégées " & _

vbCrLf & "avant de quitter." & vbCrLf & vbCrLf
& _

"Appliquer la protection la la feuille : " &
Sh.Name

Cancel = True
End If
Next
End Sub
'---------------------------


Salutations!




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

Merci! et si la personne essaie de quitter et que la
feuille n'est pas

protégé, puis-je avoir un message qui indique à la
personne qu'elle ne

peut pas quitter le document sans protéger la feuille et
du même coup

ne pas fermer le fichier?

Guy


.



Avatar
michdenis
Bonjour James,


A ) ce bouton doit provenir impérativement de la boîte d'outils Formulaire

B ) avant de lancer la macro, le bouton doit porter l'inscription "Protéger Feuille"

C ) Dans mon exemple, le bouton avant comme nom : "Bouton 1", il faut adapter selon le nom du bouton de ton application.


Salutations!




"James" a écrit dans le message de news:205001c49a60$c2028720$
Denis,

j'ai une question par rapport a ta premiere reponse, le
bouton protéger ne fonctionne pas et donner
l'erreur 'Runtime Error 9'. Est-ce que tu sais pourquoi?

Merci


-----Message d'origine-----
Bonjour Guy,


Dans le thisWorkbook de ton classeur, copie ceci :

Tu ne pourras pas fermer ton classeur si une des feuilles
de calcul n'est pas protégée.

'---------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.ProtectContents = False Then
MsgBox "Toutes les feuilles doivent être
protégées " & _

vbCrLf & "avant de quitter." & vbCrLf & vbCrLf
& _

"Appliquer la protection la la feuille : " &
Sh.Name

Cancel = True
End If
Next
End Sub
'---------------------------


Salutations!




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

Merci! et si la personne essaie de quitter et que la
feuille n'est pas

protégé, puis-je avoir un message qui indique à la
personne qu'elle ne

peut pas quitter le document sans protéger la feuille et
du même coup

ne pas fermer le fichier?

Guy


.



Avatar
James
Denis,
Je prend ce bouton dans la boîte à outils d'Excel et cela
créer un nom genre CommandButton5... est-ce que je dois
le prend là ou bien dans un UserForm à partir de VBE?
Encore merci!



-----Message d'origine-----
Bonjour James,


A ) ce bouton doit provenir impérativement de la boîte
d'outils Formulaire


B ) avant de lancer la macro, le bouton doit porter
l'inscription "Protéger Feuille"


C ) Dans mon exemple, le bouton avant comme
nom : "Bouton 1", il faut adapter selon le nom du bouton

de ton application.


Salutations!




"James" a écrit
dans le message de news:205001c49a60$c2028720

$
Denis,

j'ai une question par rapport a ta premiere reponse, le
bouton protéger ne fonctionne pas et donner
l'erreur 'Runtime Error 9'. Est-ce que tu sais pourquoi?

Merci


-----Message d'origine-----
Bonjour Guy,


Dans le thisWorkbook de ton classeur, copie ceci :

Tu ne pourras pas fermer ton classeur si une des
feuilles


de calcul n'est pas protégée.

'---------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.ProtectContents = False Then
MsgBox "Toutes les feuilles doivent être
protégées " & _

vbCrLf & "avant de quitter." & vbCrLf & vbCrLf
& _

"Appliquer la protection la la feuille : " &
Sh.Name

Cancel = True
End If
Next
End Sub
'---------------------------


Salutations!




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

Merci! et si la personne essaie de quitter et que la
feuille n'est pas

protégé, puis-je avoir un message qui indique à la
personne qu'elle ne

peut pas quitter le document sans protéger la feuille et
du même coup

ne pas fermer le fichier?

Guy


.




.




Avatar
michdenis
Bonjour James,

Pour les feuilles de calcul, il est possible d'utiliser 2 types de bouton issus de 2 barre d'outils différentes :

Les "commandbutton" proviennent de la "barre d'outils Contrôles"

les "Boutons de commande" proviennent de la barre d'outils "Formulaire" (cela n'a rien à voir avec les Userforms qui
eux possèdent leur propre barre d'outils.)


Le code est fait pour les contrôles en provenance de la boîte d'outils FORMULAIRE.


Salutations!

P.S. c'était mon dernier message sur ce fil.






"James" a écrit dans le message de news:21f501c49a6f$e70be3e0$
Denis,
Je prend ce bouton dans la boîte à outils d'Excel et cela
créer un nom genre CommandButton5... est-ce que je dois
le prend là ou bien dans un UserForm à partir de VBE?
Encore merci!



-----Message d'origine-----
Bonjour James,


A ) ce bouton doit provenir impérativement de la boîte
d'outils Formulaire


B ) avant de lancer la macro, le bouton doit porter
l'inscription "Protéger Feuille"


C ) Dans mon exemple, le bouton avant comme
nom : "Bouton 1", il faut adapter selon le nom du bouton

de ton application.


Salutations!




"James" a écrit
dans le message de news:205001c49a60$c2028720

$
Denis,

j'ai une question par rapport a ta premiere reponse, le
bouton protéger ne fonctionne pas et donner
l'erreur 'Runtime Error 9'. Est-ce que tu sais pourquoi?

Merci


-----Message d'origine-----
Bonjour Guy,


Dans le thisWorkbook de ton classeur, copie ceci :

Tu ne pourras pas fermer ton classeur si une des
feuilles


de calcul n'est pas protégée.

'---------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
For Each Sh In Worksheets
If Sh.ProtectContents = False Then
MsgBox "Toutes les feuilles doivent être
protégées " & _

vbCrLf & "avant de quitter." & vbCrLf & vbCrLf
& _

"Appliquer la protection la la feuille : " &
Sh.Name

Cancel = True
End If
Next
End Sub
'---------------------------


Salutations!




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

Merci! et si la personne essaie de quitter et que la
feuille n'est pas

protégé, puis-je avoir un message qui indique à la
personne qu'elle ne

peut pas quitter le document sans protéger la feuille et
du même coup

ne pas fermer le fichier?

Guy


.




.