Connaitre l'état de protection d'une feuille

michir

XLDnaute Occasionnel
Bonjour,
je cherche à connaître l'état de protection d'une feuille avec affichage dans une cellule "Protégé" ou "Déprotégé"
J'ai un début de solution donné par un contributeur sympa, mais je ne sais trop le mettre en oeuvre
J'aimerais une solution VBA pas trop compliquée
Je suis sous Excel 2010
j'ai des macros dans mes feuilles . Elles sont toutes identiques . J'aimerais que pour chaque feuille s'affiche l'état de protection en A1
Merci à tous
Michel
 

TempusFugit

XLDnaute Impliqué
Re : Connaitre l'état de protection d'une feuille

Bonjour

Un solution sans VBA
Créer le nom* suivant : PROTECTION
avec cette formule : =LIRE.DOCUMENT(7)
*: faire Insertion/Noms/Définir

Dans une cellule (A1 par exemple) d'une feuille, inscrire cette formule:
=SI(PROTECTION=VRAI;"Protégé";"Déprotégé")

Cela fonctionne sur Excel 2003 ( je viens de faire le test)

Je ne sais pas ce que cela donnera sur Excel 2007 ou Excel 2010
 

michir

XLDnaute Occasionnel
Re : Connaitre l'état de protection d'une feuille

Merci TempusFugit
Je suis désolé, mais chez moi, cela ne fonctionne pas. Lorsque je protège, la cellule affiche toujours déprotégé....
Michel

Bonjour

Un solution sans VBA
Créer le nom* suivant : PROTECTION
avec cette formule : =LIRE.DOCUMENT(7)
*: faire Insertion/Noms/Définir

Dans une cellule (A1 par exemple) d'une feuille, inscrire cette formule:
=SI(PROTECTION=VRAI;"Protégé";"Déprotégé")

Cela fonctionne sur Excel 2003 ( je viens de faire le test)

Je ne sais pas ce que cela donnera sur Excel 2007 ou Excel 2010
 

TempusFugit

XLDnaute Impliqué
Re : Connaitre l'état de protection d'une feuille

Testes cette macro et dis-moi si elle fonctionne sous Excel 2010

Protége une ou deux feuilles sur un classeur vierge avant de la lancer.

Code:
Sub TestProtection()
Dim s As Worksheet
For Each s In Worksheets
s.Activate
MsgBox s.Name & vbCrLf & IIf(ExecuteExcel4Macro("Get.Document(7)"), "Protégé", "Déprotégé")
Next s
End Sub

Cette fonction LIRE.DOCUMENT n'est pas dans la liste des fonctions.
Elle appartient au langage macro XL4
Mais on peut s'en servir en tant que formule nommée.
(avec Insertion/Noms/Définir)
 

michir

XLDnaute Occasionnel
Re : Connaitre l'état de protection d'une feuille

Merci à toi TempusFugit, elle fonctionne , mais j'aurais aimé qu'elle affiche dans une cellule (toujours la même A1 par exemple) l'état de "protection" ou de "déprotection " de le feuille active
Peux tu m'arranger la macro ?
Michel
 

TempusFugit

XLDnaute Impliqué
Re : Connaitre l'état de protection d'une feuille

Donc si la macro fonctionne sur Excel 2010
l'emploi de LIRE.DOCUMENT(7) devrait fonctionner comme indiqué dans ma première proposition.

Il faut que les cellules A1 de toutes tes feuilles soient en mode dévérouillé.
(Format/Cellule/Onglet Protection: décocher Vérouillée)

Ensuite inscrire la formule en A1 de chaque feuille
=SI(PROTECTION=VRAI;"Protégé";"Déprotégé")

Appuie sur F9 pour actualiser.

Post Scriptum: si tu as bien créer le nom PROTECTION avec la formule adéquate
si tu saisis en A1 sur une feuille protégée: =PROTECTION
A1 doit te renvoyer: VRAI (et FAUX si la feuille est déprotégée)

Est-ce que cela se produit sur ton PC ?
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Connaitre l'état de protection d'une feuille

Bonjour michir, Bonjour TempusFugit,

Une autre possibilité

Code:
Function Prot() As String
    Application.Volatile
    Prot = "déprotégé"
    If ActiveSheet.ProtectContents Then Prot = "protégé"
End Function

et en A1, taper la formule

Code:
=prot()

A noter que la protection/déprotection de la feuille ne déclenche pas de recalcul
Avec ma fonction, tu devras appuyer sur F9 pour forcer le recalcul, avec celle de TempusFugit, il faut revalider la formule, à moins de provoquer un recalcul à chaque changement de sélection
 

Yaloo

XLDnaute Barbatruc
Re : Connaitre l'état de protection d'une feuille

Bonjour michir, TempusFugit, tototiti,

Pour la fonction lire-document, sur mon pc du boulot, elle ne fonctionne ni sous Excel 2003 ni sous Excel 2007.
Il y a peut être une référence à mettre dans VB.

La fonction de tototiti fonctionne parfaitement avec 2007.

Yaloo
 

michir

XLDnaute Occasionnel
Re : Connaitre l'état de protection d'une feuille

La fonction de tototiti2008 me convient parfaitement, mais ne peut-on introduire une commande auto pour forcer le recalcul et ainsi la rendre parfaitement transparente pour l'utilisateur ?
Merci à tous
 

michir

XLDnaute Occasionnel
Re : Connaitre l'état de protection d'une feuille

...mon problème est que je dois avoir en temps réel une bonne réactivité de l'information de l'état de protection de la feuille et ceci sans passer sur F9 (l'appli est utilisée par des réfractaires à l'informatique...sourire)
 

Discussions similaires

Statistiques des forums

Discussions
312 472
Messages
2 088 712
Membres
103 930
dernier inscrit
Jibo