Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

couper une protection de feuille temporairement pour faire fonctionner une macro

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

pascal21

XLDnaute Barbatruc
bonsoir
je'aimerais protéger certaines colonnes des mes feuilles par un mot de passe pour éviter que l'utilisateur effacent les formules par une erreur de manipulation (ç'est encore arrivé ce matin)
mais le problème est que il y a des macros qui seront genées par cette protection
quel est le code qui permet de temporairement couper cette protection puis de la remettre après l'execution de la macro
merci
 
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

bonjour chris, le faux rhum et tout le monde
Code:
 Autre solution à mon avis meilleure
Worksheets("PM_Tasks").Protect userinterfaceonly:=True, Password:="mot de passe"
permet de laisser la protection mais d'autoriser la macro à faire ce qu'elle doit faire
Je conseille de le mettre dans une boucle l'appliquant sur toutes les feuilles protégées dans le Workbook_open
Ainsi même en interrompant la macro, la protection reste active.
ça me semble interressant
Je conseille de le mettre dans une boucle
comment fait-on ceci?
je debute dans les macros et les boucles sont encore des mysteres pour moi
merci
 
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

Bonjour pascal21, chris, le forum

Si ca peux t'aider, voici un exemple de code que j'utilise dans un fichier qui protége toutes les feuilles (35) sauf deux. Les macros restent actives sur les feuilles protégées.

Le code est à mettre dans le ThisWorkbook et s'active à l'ouverture du fichier.

Code:
Private Sub Workbook_Open()

Dim wk As Worksheet
Application.ScreenUpdating = False
For Each wk In ThisWorkbook.Worksheets
    If wk.Name <> "Tableau general" And wk.Name <> "ListAct" Then
          wk.Activate
          wk.Protect Password:="azerty", UserInterfaceOnly:=True
    End If
Next wk
Sheets("Tableau general").Select
Application.ScreenUpdating = True

End Sub

A+
 
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

ok merci j'y regarderai plus tard
pour l'instant je viens de m'apercevoir d'un bug dans une formule dans ce classeur
je post à ce sujet
 
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

Code:
Private Sub Workbook_Open()

Dim wk As Worksheet
Application.ScreenUpdating = False
For Each wk In ThisWorkbook.Worksheets
    If wk.Name <> "Tableau general" And wk.Name <> "ListAct" Then
          wk.Activate
          wk.Protect Password:="azerty", UserInterfaceOnly:=True
    End If
Next wk
Sheets("Tableau general").Select
Application.ScreenUpdating = True

End Sub
comment l'adapter à toutes les feuilles qui auront une protection
soit de feuil1 à feuil11
merci
 
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

Re,

Essaye ceci, à mettre dans le module de code du ThisWorkbook :

Code:
Private Sub Workbook_Open()
Dim i As Byte
Application.ScreenUpdating = False
For i = 1 To 11
    Sheets("Feuil" & i).Protect Password:="azerty", UserInterfaceOnly:=True
Next i
Application.ScreenUpdating = True

End Sub
 
Dernière édition:
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

bonjour
edit:
si c'est l'integralité des feuilles

For Each Worksheet In Sheets
Worksheet.Protect Password:="polo", UserInterfaceOnly:=True
Next Worksheet

je n'avais pas vu que c'était de 1 à 11 cela sous-entend qu'il y a d'autres feuilles
je lis trop vite les messages désolé..
 
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

bonjour
je ne pense pas que ça soit un problème de l'appliquer à toutes les feuilles
ç'est encore le plus simple
je vais adapter mon classeur à cette formule
Code:
 Worksheet.Protect Password:="polo", UserInterfaceOnly:=True
si j'ai bien compris ce code garde la protection mais laisse passer le fonctionnement des macros
merci
 
Dernière édition:
Re : couper une protection de feuille temporairement pour faire fonctionner une macro

ok merci c'est impec!!!
finalement j'ai appliqué une protection sur toutes les feuilles (mieux vaut être prudent!!)
bon week-end
 
- 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
643
O
Réponses
3
Affichages
801
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…