Affichage de l'état de protection d'une feuille

Le
michir
Bonjour,
Je souhaiterais connaître en permanence l'état de protection d'un feuil=
le, sans aller dans l'onglet "Revision"
Je m'explique, j'aimerais qu'en cellule P1 s'affiche "Protégé" ou "Dé=
protégé" selon les cas
Est-ce possible ?
Merci
Michel
Je suis sous Excel 2010
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23813121
Bonjour,

Est-ce suffisant ?

Ajoute ceci dans le module Thisworkbook de ton classeur :

Ceci permet l'usage des macros même si la feuille est protégée même si
l'usager n'a pas accès au contenu des cellules par l'interface de la feuille de calcul.
'-------------------------
Private Sub Workbook_Open()
'Le "MotDePasse" est optionnel
'Feuil1 n'est pas le nom de l'onglet mais la propriété
'name visible dans la fenêtre de l'éditeur de code.
With Feuil1
.Protect "MotDePasse", True, True, True, True
.Range("A1") = "Feuille protégée"
End With
End Sub
'-------------------------

Et dans le module de la feuille ceci :
Le rafraîchissement se fait à chaque sélection d'une cellule dans ladite feuille.
'-------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Feuil1.ProtectContents = True Then
Range("A1") = "Feuille protégée"
Else
Range("A1") = "Feuille non protégée"
End If
End Sub
'-------------------------

MichD
------------------------------------------
"michir" a écrit dans le message de groupe de discussion :


Bonjour,
Je souhaiterais connaître en permanence l'état de protection d'un feuille, sans aller dans l'onglet "Revision"
Je m'explique, j'aimerais qu'en cellule P1 s'affiche "Protégé" ou "Déprotégé" selon les cas
Est-ce possible ?
Merci
Michel
Je suis sous Excel 2010
michir
Le #23813461
Merci MichD
J'ai une erreur de débogage lorsque la feuille est en état protégé
MichD
Le #23813551
Pour protéger la feuille, tu dois utiliser le paramètre UserInterfaceOnly de la méthode Protect. Tu peux lire d'aide d'Excel
sur la méthode.
Ce paramètre lorsqu'il est à "True" permet d'exécuter les macros et modifier le contenu des cellules par macro, et ce, sans
permettre à l'usager d'intervenir directement dans la feuille de calcul.

La procédure Workbook_Open s'exécute seulement à l'ouverture de la macro ou à moins que tu l'exécutes manuellement.
As-tu adapté le nom de la feuille "Feuil1" dans la procédure ?



MichD
------------------------------------------
"michir" a écrit dans le message de groupe de discussion :


Merci MichD
J'ai une erreur de débogage lorsque la feuille est en état protégé
michir
Le #23815341
J'ai été voir l'aide.
peux tu me dire plus précisément comment je peux incorporer cette mét hode et ce paramètre dans la procédure VBA ? excuse mon niveau très r éduit en VBA
Merci
MichD
Le #23816531
J'ai déjà publié le code dans mon premier message. Lorsque tu as terminé d'installer le code, si dans le reste de ton
application, tu dois déprotéger la feuille pour permettre à un usager d'intervenir dans la feuille, si par la suite tu dois
protéger la feuille, tu dois utiliser cette ligne de commande (en adaptant le nom de la feuille)
Worksheets("Feuil1").Protect "MotDePasse", True, True, True, True

Si tu as un problème précis, explique ce qui ne va pas.


MichD
------------------------------------------
"michir" a écrit dans le message de groupe de discussion :


J'ai été voir l'aide.
peux tu me dire plus précisément comment je peux incorporer cette méthode et ce paramètre dans la procédure VBA ? excuse mon
niveau très réduit en VBA
Merci
michir
Le #23816551
Je te joins mon fichier test (macro MichD)pour voir si tu peux m'aider à trouver la solution.

http://www.cijoint.fr/cjlink.php?file=cj201110/cijEyJBCAM.xlsm

J'aimerais que le code puisse servir dans chaque feuille de mon appli (18 f euilles)
Mes feuilles comportent toutes des macros et je suis amené à les prot éger et déprotéger
L'indication de l'état de protection dans une cellule (toujours la même ) est une sécurité appréciable
Merci à toi
MichD
Le #23816691
Fichier exemple ici : http://cjoint.com/?AJdqGaYDMY8



MichD
------------------------------------------
"michir" a écrit dans le message de groupe de discussion :


Je te joins mon fichier test (macro MichD)pour voir si tu peux m'aider à trouver la solution.

http://www.cijoint.fr/cjlink.php?file=cj201110/cijEyJBCAM.xlsm

J'aimerais que le code puisse servir dans chaque feuille de mon appli (18 feuilles)
Mes feuilles comportent toutes des macros et je suis amené à les protéger et déprotéger
L'indication de l'état de protection dans une cellule (toujours la même) est une sécurité appréciable
Merci à toi
michir
Le #23816791
Merci MichD,
Ton fichier fonctionne parfaitement.
Encore une question. si je veux que la macro ne s'applique qu'aux feuilles nommées "Jour 1" à "Jour 15" par exemple comment dois je adapter le cod e ?
Michel
MichD
Le #23816871
Comme ceci :

'-----------------------------------------
Private Sub Workbook_Open()
'Le "MotDePasse" est optionnel
'Tu peux ajouter un mot de passe
'si tu le désires.

'lorsque le classeur ouvre, il protège toutes les
'feuilles du classeur et inscrit dans la cellule A1
'le statut de protection de la feuille.
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Select Case Sh.Name
'Tu listes toutes les feuilles que tu désires..
'Tu appliques la même chose à l'autre procédure
Case Is = "Feuil1", "Feuil3", "Feuil5"
With Sh
.Unprotect
.Range("A1") = "Feuille protégée"
.Protect , True, True, True, True
End With
End Select
Next
End Sub
'-----------------------------------------


MichD
------------------------------------------
"michir" a écrit dans le message de groupe de discussion :


Merci MichD,
Ton fichier fonctionne parfaitement.
Encore une question. si je veux que la macro ne s'applique qu'aux feuilles nommées "Jour 1" à "Jour 15" par exemple comment
dois je adapter le code ?
Michel
michir
Le #23821391
Bonjour,
Je voudrais remercier MichD pour sa dernière proposition. Je n'avais pas eu le temps de tester.Elle fonctionne parfaitement
Michel
Publicité
Poster une réponse
Anonyme