Protection : UserInterfaceOnly

  • Initiateur de la discussion Initiateur de la discussion Imy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Imy

XLDnaute Nouveau
Bonjour,


J'ai découvert l'option UserInterFaceOnly de la procédure Protect des feuillets. Elle protège le classeur contre toute modification non désirée de l'utilisateur en laissant le champ libre à mes macros de faire les leurs.
Cela n'a l'air de rien, mais protéger les feuillets avec une procédure spécialisée qui protège les feuillets aussi contre les macros, complique horriblement l'analyse du code VBA. Les problèmes d'une telle méthode, ce sont les appels en cascade qui conduisent à mettre la protection dans une sub appelée en secondaire par une autre qui n'a pas besoin encore de protection ; l'exécution du code bloque. La parade que j'utilise face à cela, c'est de multiplier la procédure pour ôter la protection lorsque cela pêche : cela complique beaucoup le code, l'exécution est alourdie et est lente, pire, il est difficile de prévoir où et quand il faut mettre ces rustines!
UserInterFaceOnly facilite la tâche en supprimant toutes ces inélégantes instructions.

Reste que je dois aussi protéger mes onglets (déplacement, suppression, couleur, nom...), aussi le classeur semble ne pas avoir ce genre de paramètre ! Comment faire pour protéger mes classeurs sans utiliser une succession inefficace de procédures pour activer et désactiver la protection lorsque mes macros font des changements?
 
Re : Protection : UserInterfaceOnly

Bonjour,

Reste que je dois aussi protéger mes onglets (déplacement, suppression, couleur, nom...), aussi le classeur semble ne pas avoir ce genre de paramètre !

Si! La protection du classeur via outils>Protection>Protéger le classeur et en cochant structure protège les déplacement, suppression, couleur, nom des onglets. Où alors j'ai pas bien compris ce que tu veux faire.
 
Re : Protection : UserInterfaceOnly

Oui, c'est la méthode classique de protection du classeur. Il en reste cependant, que chaque fois que l'on veut faire des modifications - notamment par les macros -, il faut la désactiver. Jusqu'à là, c'est normal. Mais lorsque les dites macros s'appellent en cascade (l'une appelle une autre dans son code), alors les problèmes de protection apparaissent. Le coup classique (pour moi...) c'est d'ôter la protection au début de la première sub qui en cours d'exécution appelle une autre sub. Cette autre sub, considérée comme indépendante (et succeptible d'être exécutée seule...) dispose d'un dispositif de gestion de protection similaire à la précédénte, simplement que l'on ôte la protection au début de son exécution et on la remet à la fin. La difficulté, c'est le fait, que si la seconde sub remet la protection, lorsque le focus revient à la première sub, la protection du classeur étant active, la première sub ne peut plus continuer son code, elle bloque face à l'erreur que l'on ne peut modifier une feuille désormais, à son insu, protégée. UserInterfaceOnly facilite cette compliquée gestion de la protection (par ailleurs nécessaire souvent) en supprimant le besoin de gérer par les macros la protection des feuilles (cela suppose que les macros ne font pas de dégât au fichier et que d'autre macros venues de l'extérieur n'en fasse pas non plus. Mais le risque est moindre). Mais il semble que la protection du classeur soit dépourvue de cette pratique option de protection : or il faut protéger le classeur pour éviter que l'utilisateur ne modifie les onglets... Aussi comment faire? N'y a-t-il pas une méthode plus simple, claire, et prévisible pour gérer la protection du classeur, de la même manière que les feuilles proposent UserInterfaceOnly?
Sinon, je me dis au fond, que cette dernière option est inutile, dans la mesure qu'il faut conserver mon système classique et bancal de gestion de protection pour le classeur, alors pourquoi ne pas le conserver pour les feuilles (et centraliser ainsi la gestion de la protection)?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
551
Réponses
2
Affichages
763
Retour