Autoriser Macros sur feuilles Protégées

Résolu/Fermé
tacounet Messages postés 28 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 22 octobre 2022 - 25 sept. 2018 à 12:16
tacounet Messages postés 28 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 22 octobre 2022 - 25 sept. 2018 à 13:05
Bonjour,


Désolé de revenir sur une question posée ici:
https://www.commentcamarche.net/forum/affich-34281504-autoriser-une-macro-sur-une-feuille-protegee

Mais les solutions proposées ne fonctionnent pas dans mon cas.

Je m'explique...
Je suis en phase de découverte des possibilités d'Excel (tant en formules qu'en macro), et je souhaite protéger le projet que j'ai réussi à mettre sur pied, à force de questions, de didacticiels, et d'adaptation d'exemples existants.

Je résume mon projet, qui dans l'état actuel (non protégé) fonctionne relativement bien...

Ce sont des fiches, à vocation d'impression (PDF et/ou papier)
L'utilisateur sélectionne, via liste de choix, un nom de ville.
Une macro va chercher et mettre en place dans des cellules définies, un certain nombre d'images associées à cette ville.
Pour des raisons de mise en page, je souhaite que l'utilisateur puisse superposer certaines images.
L'utilisateur peaufine donc sa mise en page, imprime, et lance une autre macro qui efface directement toutes les images importées.
L'utilisateur sélectionne une autre ville, et recommence la procédure.

Connaissant les loustics qui vont utiliser ce projet, je préfère tout naturellement le protéger.

J'ai sélectionner les cellules à verrouiller (sauf celles des listes de choix),
"protéger la feuille par mot de passe, j'autorise mon utilisateur à sélectionner les cellules déverrouillées, et modifier les objets (pour bouger les images).

J'ai appliqué à ma macro Affimage le codes proposé dans le lien ci dessus (ActiveSheet.Unprotect"mdp" ........ActiveSheet.Protect"mdp" End Sub

J'ai énormément tâtonné pour placer correctement ActiveSheet.Protect, afin de remettre en place la protection levée par la macro...

Mais cette méthode n'est pas satisfaisante dans mon cas.
En effet, la macro ( ou mes choix d'autorisations) ne permettent pas de déplacer les images.

Je précise que ces images viennent prendre place "au dessus" des cellules contenant le lien vers le dossier de stockage, et c'est (entre autres formules) ce lien que je souhaite protéger.

Quelle peut être la solution à mon problème, si tant est que mes explications aient été compréhensibles?

Merci par avance de votre aide.
Tacounet

J'oubliais, je travaille sous Excel 2003.





2 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 414
25 sept. 2018 à 12:37
Bonjour
essayez avec:

ActiveSheet.Protect "mdp", DrawingObjects:=False, Contents:=True, Scenarios:= _
True
0
tacounet Messages postés 28 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 22 octobre 2022
25 sept. 2018 à 12:42
Bonjour Vaucluse.

EXCELLENT...
Cela fonctionne à merveille.
MERCI
Je me doutais bien qu'il devait y avoir une histoire d’exceptions à mettre en place...
Mais quand on ne connait pas les termes et leur syntaxes...
On cherche et on demande, en fin de compte, aux experts.

Encore merci.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 414
25 sept. 2018 à 12:47
.. pas trop difficile à détecter pourtant:
  • vous lancer l'enregistreur de macro
  • vous faites la manip de protection en cochant "Modifier les objets"
  • vous arrêter l'enregistreur et vous récupérez la syntaxe dans l'éditeur VBA
  • reste plus qu'à caser le mot de passe derrière protect, suivi d'une virgule

bonne route
je passe le sujet en résolu
0
tacounet Messages postés 28 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 22 octobre 2022
25 sept. 2018 à 13:05
Petit Bug après l'exécution de la macro d'effacement…

Parfois, il remonte Erreur '1004'

J'avais lu que cela ne provenait pas forcement d'Excel, mais un redémarrage n'y change rien.
Y aurait-il une astuce???

J'avais essayer l'enregistreur de macro, pour enregistrer l'effacement manuel des images, mais cela n'avait pas été probant.
J'avoue humblement, je n'y avait pas pensé pour les exceptions.
0