Réactiver la protection partielle d'une feuille après une macro

Bonjour,

Je travaille actuellement sur un fichier excel de gestion de projet pour mon équipe, qui va être utilisée par plusieurs personnes. Ce fichier contient des macros et des tableaux à compléter pour gérer le projet. Pour permettre au visuel de rester constant lors de l'utilisation, j'ai protéger la feuille, notamment sur la modification des tailles de colonnes (L'agrandissement des colonnes entraine la modification des positions des boutons et rends le fichier difficile à utiliser). Le fichier peut tout de même être complété par les utilisateurs, les slicers utilisés etc... les images jointes montrent la protection que je souhaite appliquer.

capture protection 1 capture protection 2

Cependant, j'utilise des macros liées à des boutons, dont une qui consiste à afficher certaines lignes cachées puis les recacher. Pour me permettre de l'utiliser malgré la protection, j'ai inséré en début et fin de macro :

ActiveSheet.Unprotect "motdepasse"

Cela fonctionne presque bien

Lorsque la page se re-protège, elle m'applique une protection totale, c'est à dire sans possibilité de modifier les tableaux, d'ajouter des données etc... contrairement à ce que j'avais sélectionné lorsque j'ai défini ma protection plus haut.

Je n'ai pas trouvé de réponse dans le forum sur comment réactiver la protection avec des paramètres identiques à ce qu'elle était initialement.

Pourriez-vous éclairer ma lanterne s'il vous plait ?

Merci pour votre aide et bonne journée,

May_eia

Bonjour,

Si tu travailles avec des tableaux structurés (Mettre sous forme de tableau…) tu es dans une impasse. Tu ne pourras pas insérer de ligne dans une feuille protégée.

Cdlt.

Bonjour Jean-Eric,

Merci pour ta rapidité de réponse. Mon soucis est plutôt sur mes slicers. Quand ma page est protégée par la protection que je définis moi-même, dont les extraits sont les screenshots du post, les slicers fonctionnent. Mais dès que j'exécute la macro qui déverrouille puis reverrouille ma page, les slicers ne fonctionnent plus car le verrouillage devient plus fort que celui défini initialement manuellement. Est-il possible de garder la protection que j'avais défini manuellement après l'exécution de ma macro ?

Merci pour ton aide,

May_eia

Re,

Pas sûr d'avoir tout compris, mais…

Clic droit sur un segment. Taille et propriétés, propriétés.

Retirer la coche sur "Verrouillé".

Lors de la protection de la feuille, autoriser "Utiliser les tableaux croisés dynamiques…"

Cdlt.

J'ai pas du être très claire, du coup je joins un fichier extrait de mon classeur initial.

L'idée de ce fichier, c'est que j'ai mis une protection sur la feuille, définie manuellement via l'onglet ajouter une protection, qui permet à l'utilisateur de tout faire sauf de modifier la taille des colonnes, en ajouter et en supprimer.

Cependant, mon bouton statut 'on' et 'off' (vert et rouge en haut de la feuille) nécessite de déprotéger la feuille. Ce que je fais dans le code de ma macro grâce à :

ActiveSheet.Unprotect "motdepasse" puis ActiveSheet.Protect "motdepasse", True, True, True pour la réactiver à la fin.

Cependant, quand elle se réactive, elle se réactive avec la protection maximale, qui ne permet plus de rien faire sur le document (et notamment l'utilisation des clusters), et pas avec celle que j'avais définie avant qui me permettait de tout faire sauf la modification des colonnes.

Je souhaiterai que lorsque la protection se réactive, elle garde mes réglages initiaux, c'est à dire uniquement le blocage sur les colonnes, et non les clusters, les lignes etc...

Je suppose que je vais devoir pour ça coder ma protection et non utiliser uniquement les réglages de protection de base d'Excel, mais pouvez vous m'éclairer sur la manière de faire ?

J'espère que mon message et l'exemple rende cela plus clair.

Merci pour votre temps,

May_eia

PS: le mot de passe est motdepasse

14test-forum.xlsm (101.28 Ko)

Bonjour May_eia,

tu a écrit :

PS: le mot de passe est motdepasse

au cas où tu as des problèmes de mémoire (la tienne, pas la RAM du PC) :

"cliquer ici..."
password

dhany

Bonjour,

Une proposition à étudier et un lien pour appréhender la protection des feuilles.

https://msdn.microsoft.com/fr-fr/vba/excel-vba/articles/worksheet-protect-method-excel

Cdlt

24test-forum-1.xlsm (116.26 Ko)

Bonsoir,

Merci beaucoup pour votre réponse, j'ai fini par enregistrer une macro en créant la protection de la feuille que je souhaitais, et j'ai intégré les lignes de code dans mes macros pour recréer la protection, ce n'est pas très propre mais cela fonctionne.

En tout cas, merci d'avoir pris le temps de chercher, votre solution fonctionne puisque cela correspond à re autoriser tout ce que l'on ne souhaitais pas protéger, ma liste est simplement bien longue.

Bonne soirée,

May_eia

Rechercher des sujets similaires à "reactiver protection partielle feuille macro"