Macro et feuille protégée sur excel: besoin d'aide...

[Fermé]
Signaler
-
 Sanchar -
Bonjour,

Question de débutante:
J'ai enregistré une macro (toute simple) sur excel et je l'ai liée à une forme "bouton".
si je ne protège pas la feuille, la macro s'execute.
Par contre si je protège la feuille, j'ai une "erreur 1004" qui apparait.
J'ai bien décoché le verrouillage de la forme.
Pour les propriétés, j'ai toutes les options (ne pas déplacer + ne pas dimensionner sur la cellule, déplacer avec la cellule sans dimensionner et dimensionner + déplacer avec la cellule). Rien n'y fait...erreur 1004.
J'ai pu déverrouiller des cellules sans problème. Mais la macro, impossible.
Quelqu'un saurait quelle peut être la solution?
En vous remerciant par avance




5 réponses

Messages postés
17134
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 octobre 2021
910
bonjour, peux-tu partager ton fichier?
Bonjour,
Merci pour la réponse.
Je ne vois pas comment. Apparemment je ne peux partager que des images.
Messages postés
17134
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 octobre 2021
910
Si j'insère la ligne

ActiveSheet.Unprotect ("mdp")

comme indiqué ici:
https://forums.commentcamarche.net/forum/affich-3164421-excel-execut-macros-sur-feuille-protegee

Dès que j'active la macro, la protection est totalement supprimée sur la page
Même j'approche de la solution
Messages postés
17134
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 octobre 2021
910
tu n'as pas expliqué ce que tu souhaitais faire:
- faire tourner la macro même quand la feuille protégée, tout en laissant la protection.
- autre chose?
Ah pardon, oui c'est çà. Je voulais pouvoir protéger la feuille mais pouvoir actionner la macro en cliquant sur le bouton qui lui est attaché.

Mais le lien précédent est bon en fait. Je n'ai appliqué que la moitié des consignes :)

Donc pour le nuls comme moi:
en début de macro on note:
ActiveSheet.Unprotect ("mdp")

et juste avant de finir on n'oublie pas de réactiver la protection:
ActiveSheet.Protect ("mdp")

Sinon, pour les allergiques total, il doit y avoir moyen d'enregistrer la macro en commençant l'enchainement des actions par "ôter la protection de la feuille" et en finissant par "protéger la feuille"

Merci

  
Remarque : les parenthèses sont inutiles, tu peux mettre directement :


Sub Essai()
  ActiveSheet.Unprotect "mdp"
  ...
  ActiveSheet.Protect "mdp"
End Sub


Mais l'enregistrement auto d'une macro ne le fera pas de lui-même car :

a) On ne protège pas forcément une feuille de calcul, donc ce serait inutile
si la feuille est déprotégée.

b) Pour déprotéger la feuille, l'enregistrement automatique devrait savoir
quel mot de passe utiliser dans le code VBA, ce qu'il ne peut deviner.

c) Même si l'enregistrement automatique déprotégeait la feuille, il ne peut
pas non plus deviner s'il faudra ou non re-protéger la feuille : des fois,
on peut vouloir laisser la feuille déprotégée (en sortie de macro).
 
> cédric
ok merci