Enlever la protection des feuille pendant une macro

  • Initiateur de la discussion Initiateur de la discussion Adz
  • 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 !

A

Adz

Guest
Bonjour,
Voila, je suis en train de faire un programme en VBA, et j'ai verrouillé toutes les feuilles pour ne pas qu'on puisse écrire dans les cellules.
Le probleme c'est que lorsque j'exécute une macro, cette macro doit écrire dans les cellules et par conséquent mon programme plante.

J'aimerais donc savoir s'il y a un moyen de faire en sorte qu'à chaque début de macro qui se lance, une autre macro se lance avant (pour dévérouiller totues les feuilles) et qu'à la fin de la macro, toutes les feuilles se revérouillent.

Je vous remercie ^^, A++
 
Re : Enlever la protection des feuille pendant une macro

Merci ^^.
Mais je pensais qu'il y avait une procédure qui permettait d'exécuter une macro automatiquement au démarrage et a la fin d'une autre macro, comme un auto_opent et auto_close pour l'ouverture et fermeture d'un fichier.
Ciao
 
Re : Enlever la protection des feuille pendant une macro

Bonjour Adz, ROGER2327, HIJACK
Le forum

si j'ai bien compris la question 😕
A METTRE DANS UN MODULE
Code:
sub deverouille()
sheets("feuil1").Unprotect
sheets("feuil2").Unprotect
sheets("feuil3").Unprotect
end sub
sub verouille()
sheets("feuil1").protect
sheets("feuil2").protect
sheets("feuil3").protect
end sub

rajouter devant chacune de tes macros call deverouille
et a la fin
call verouille

cdlmt
bocaramel 🙂
 
Re : Enlever la protection des feuille pendant une macro

Re...
Merci ^^.
Mais je pensais qu'il y avait une procédure qui permettait d'exécuter une macro automatiquement au démarrage et a la fin d'une autre macro, comme un auto_opent et auto_close pour l'ouverture et fermeture d'un fichier.
Ciao
Si vous déverrouillez automatiquement les feuilles à l'ouverture, tous les utilisateurs pourront modifier tout ce qu'ils veulent. (Inutile de se compliquer la vie avec un protection dans ce cas.) J'avais cru comprendre que c'était précisément ce que vous vouliez éviter.
Si vous voulez autoriser n'importe quel utilisateur à exécuter une procédure, ajoutez simplement ActiveSheet.Unprotect au début de la procédure si elle soit s'exécuter sur la seule feuille active, ou
Code:
[COLOR="DarkSlateGray"]
Dim i As Long
   For i = 1 To Worksheets.Count
      Worksheets(i).Unprotect
   Next i
[/COLOR]
si elle soit s'exécuter sur toutes les feuilles.
A la fin de la procédure, ajoutez ActiveSheet.Protect contents:=True pour protéger la feuille active ou
Code:
[COLOR="DarkSlateGray"]
Dim i As Long
   For i = 1 To Worksheets.Count
      Worksheets(i).Protect contents:=True
   Next i
[/COLOR]
pour protéger toutes les feuilles.
ROGER2327
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
21
Affichages
2 K
G
Réponses
3
Affichages
881
Retour