XL 2013 me prévenir si ma feuille est déprotégée

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Me re-voilou avec un nouveau souci (ou plutôt un ancien qui persiste).

Je me permets de faire à nouveau appel à vous :)

En fait, c'est le sujet suivant : https://www.excel-downloads.com/threads/créer-une-alerte-si-la-feuille-nest-pas-protégée.20025881/ - Qui m'incite à poser ma question maintenant car il est proche de mon souci ainsi que la solution de Philippe (phlaurent55) mais pas tout à fait.

Voici mon petit exposé
J'ai dans mon fichier de travail une feuille qui contient beaucoup de cellules (lignes et colonnes)
et avec beaucoup de codes d'exécution (dans la feuille)
Après exécution de chaque code, cette feuille doit être en permanence protégée.

Je n'ai pas encore trouvé pourquoi mais il arrive que la feuille se trouve "déprotégée" et souvent la raison en est la désactivation des macros
Cela pose de gros problèmes ensuite dans le fonctionnement de cette feuille.

J'en viens à ma demande
Serait-il possible qu'un code permette de détecter si la feuille est "déprotégée" et si c'est le cas,
il pourrait y avoir un msgbox genre "votre feuille est déprotégée cliquez ICI"

Je joins le fichier test de Philippe.

Avec mes remerciements aux habitants d'un nouveau pays chaud et bientôt tropical :p
Je vous souhaite une belle journée,
Amicalement,
arthour973,
 

Pièces jointes

  • 111.xlsm
    35 KB · Affichages: 36
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Si les macros ne sont pas autorisée, aucun code de détection ne peut se faire...

Masquer les feuilles à la fermeture et si le code n'est pas autorisé, à l'ouverture l'utilisateur ne peut rien faire. Sinon le code d'ouverture affiche les feuilles.

En général on ne peut activer les macros sans fermer et rouvrir le fichier...
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Chris,
Merci de m'avoir répondu :)

Mais je pense que je me suis mal expliqué :
Il n'y a pas de souci, me semble-t-il, de macros autorisées elles le sont.

Mon souci est juste :
Serait-il possible qu'un code permette de détecter si la feuille est "déprotégée" et si c'est le cas,
il pourrait y avoir un msgbox genre "votre feuille est déprotégée cliquez ICI"


Amicalement,
arthour973,
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Bonjour, arthour973, chris.

Les ennuis venant d'une feuille déprotégée proviennent rarement du code, sauf s'il est mal écrit, et là c'est un autre problème.
Non, les ennuis viennent presque (et je suis gentil) exclusivement de l'interface chaise-clavier.
Ceci étant, pourquoi ne pas utiliser l'option UserInterfaceOnly de la méthode Protect ?
Cette option évite de plus les multiples protection-MotDePasse/déprotection-MotDePasse.
Et plus besoin de se poser la question : la feuille est toujours protégée.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour à tous,

Ce serait plus intéressant d'obliger l'utilisateur à activer les macros lors de l'ouverture du fichier .
Le fichier contiendrait une feuille "ACCUEIL" en plus que toutes les autres.
Toutes les feuilles (sauf la première) seraient protégées et masquées lors de la sauvegarde du fichier, et seraient par le fait même invisibles lors de la prochaine ouverture du fichier.
Il serait alors nécessaire d’accepter les macros (c'est le but) pour avoir accès au fichier et rendre les feuilles visibles.

Remarque: cette façon de faire ne tient que quelques secondes pour quelqu'un qui s'y connait et qui a envie de tout foutre en l'air

à+
Philippe

Edit: Le fichier que tu as trouvé est brut de décoffrage et doit encore être amélioré
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick ,
Bonjour Philippe,
Re-Chris,

Les macros sont déjà activées au départ.

Patrick a mis le doigt et même la main sur mon problème LOL.

En effet, je suis un brocolou en VBA.

Mon fichier de travail est un assemblage de codes obtenus en quasi-totalité grâce à vous tous et un peu aussi avec ce que j'ai pu apprendre toujours grâce à vous tous.

Résultat :
Vos codes adaptés tant bien que mal + mes bricolages = codes mal écrits :confused:

Quoiqu'il en soit, mon "bidule" arrive à fonctionner quand les codes ne sont pas désactivés par un mystère "invisible" à mes yeux.

Dans l'attente de pouvoir ré-écrire les codes
J'aurais juste besoin d'une alerte par msg box me disant si ma feuille est considérée par excel comme déprotégée
car elle doit toujours être protégée en permanance ainsi que suite à l'exécution d'un code ou d'une suite de codes.

Etre juste averti que la feuille est "en état" déprotégée, est-ce possible ?
Qu'en pensez-vous ?


Avec mes remerciements pour m'avoir répondu aussi vite,
Amicalement,
arthour973,
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour,

Sans rien retirer de la proposition de patrick, tu devrais relire ce que te dit phlaurent, c'est frappé au coin du bon sens.
Si ton problème est :
mon "bidule" arrive à fonctionner quand les codes ne sont pas désactivés par un mystère "invisible" à mes yeux
n'importe quelle macro sensée t'alerter ne t'alertera plus.
Sa proposition :
Toutes les feuilles (sauf la première) seraient protégées et masquées lors de la sauvegarde du fichier, et seraient par le fait même invisibles lors de la prochaine ouverture du fichier.
Il serait alors nécessaire d’accepter les macros (c'est le but) pour avoir accès au fichier et rendre les feuilles visibles.
C'est une sécurité supplémentaire.
eric
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Etre juste averti que la feuille est "en état" déprotégée, est-ce possible ?
Qu'en pensez-vous ?

Un moyen de faire ce test (qui ne servira à rien quand l'utilisateur final sait ouvrir un classeur sans activer les macros ou supprimer les protections de feuilles etc...)
VB:
Function Protection_DePacotille(OngletSaignant As Worksheet) As Boolean
Protection_DePacotille = OngletSaignant.ProtectContents
End Function
Sub test()
Feuil1.Unprotect
MsgBox Protection_DePacotille(Feuil1)
Feuil1.Protect
MsgBox Protection_DePacotille(Feuil1)
End Sub
 
Dernière édition:

Si...

XLDnaute Barbatruc
Bon_soir
En effet, je suis un brocolou en VBA.Quoiqu'il en soit, mon "bidule" arrive à fonctionner quand les codes ne sont pas désactivés par un mystère "invisible" à mes yeux.
C'est là où le bât blesse, il faut commencer par corriger cela !

Dans l'exemple* joint, tu as deux cas probables de blocage que je rencontre très souvent.
Y en aurait-il d'autres ? Merci de m'en faire part.

*j'ai inclus la possibilité de changer d'état. Il est très facile de rectifier ce tir. J'ai modifié celui que j'avais préparé pour la demande précédente (message permanent). Si certains veulent le voir ... c'est ici.

Edit :
Un moyen de faire ce test (qui ne servira à rien si... :oops:)
[/code]
 

Pièces jointes

  • Alerte _ protection.xlsm
    54.3 KB · Affichages: 27
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re, Bonsoir Si...


Comme dit par les autres intervenants, si le classeur est ouvert sans activer les macros (ou ouvert dans Libre-Office ou...), la protection est caduque (comme n'importe quel code VBA d'ailleurs)
Et la protection du projet VBA n'y changera rien.

@Si...
Je ne vois pas ce que ton exemple change à cet état de fait.

@arthour973
La seule utilité de la protection, c'est d'éviter l'effacement intempestif de formules.
Dans ce cas pas besoin de mot de passe, il suffit de former l'utilisateur final ;) et de lui apprendre comment protéger ses feuilles manuellement pour qu'il ne perde pas son travail en cours.
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Un doute m'assaille...
Après exécution de chaque code, cette feuille doit être en permanence protégée.
Je n'ai pas encore trouvé pourquoi mais il arrive que la feuille se trouve "déprotégée" et souvent la raison en est la désactivation des macros
Je comprend que tu as une macro qui tourne, mais qui n'arrive pas jusqu'à la re-protection de la feuille.
C'est ça ?
Tu n'aurais pas des On Error xxxx pour cacher la poussière sous le tapis, et qui te masquerait les plantages que tu aurais dû résoudre ?
eric
 

Si...

XLDnaute Barbatruc
Re

Stapple, on n'a pas pris la demande du fil par le même bout. Tu te replaces dans un sempiternel discours concernant les protections et il n'a pas toujours lieu d'être :eek:.
La seule utilité (à tes yeux) de la protection, c'est d'éviter l'effacement intempestif de formules.
Cela peut être utile ou pas non pas dans l'absolu mais dans l'environnement présent ?

Le sens de mon intervention était de signaler des cas de dysfonctionnement qu'on peut trouver et essayer de corriger.
eriiiic ,
[pour des voies impénétrables…]
(… m'assaille...) tu sors plus grand à mes yeux ;).
[/où qu'elles sont les erreurs ?]
En plus ces plantages ne doivent pas afficher de message d'alerte sauf si arthour a inhibé ceux-ci.
Des portions de ses macros (notamment les évènementielles) avec la protection rétablie pourraient nous aider à l'aider à les corriger.

Protège toi bien et repose-toi bien arthour :D.
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Re
Staple, Tu te replaces dans un sempiternel discours concernant les protections et il n'a pas toujours lieu d'être (selon tes dires)
"Protection de niveau de feuille de calcul ne constitue pas une fonctionnalité de sécurité. Il empêche simplement les utilisateurs de modifier des cellules verrouillées dans la feuille de calcul."
source
Ce ne ne sont pas les miens de dire...
Ce qui peut donc se dire:
La seule utilisé de la protection d'une feuille c'est éviter l'effacement intempestif de formules
(Car si c'est l'effacement d'une saisie, il suffira à l'utilisateur de la ressaisir)
 

Discussions similaires