Protéger et déprotéger

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

M

Marty

Guest
Bonjour à tous.

Brrrr!!! Qu'il fait froid. C'est pas le sujet ; dans le cadre de mon boulot, j'ai une quarantaine de feuille à déprotéger puis à reprotéger.
J'ai bien un code (ci-dessous) mais il est fastidieux. Quelqu'un a-t-il une idée pour me le simplifier ? Merci à tous. :huh:
Sheets('BORD 1').Select
ActiveSheet.Unprotect
Sheets('BORD 2').Select
ActiveSheet.Unprotect
Sheets('BORD 3').Select
ActiveSheet.Unprotect
 
Bonjour Marty, re le forum,
Essaie de faire avec cette macro qui normalement le fait sur toutes les feuilles (enfin ici elle les protège)

Sub Macro1()

Dim WS As Worksheet
For Each WS In Worksheets
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Next

End Sub

A plus
 
Bonjour Marty et Elo6,

Une variante :
Une macro qui déprotège et reprotège après exécution d'une macro. Le mot de passe ici est trois étoiles ***.

Sub DeproMacroRepro()
Dim i As Byte

'Passer les feuilles les unes après les autres
For i = 1 To Sheets.Count
Sheets(i).Activate
' Deprotection de la feuille active
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:='***'
End With
'
'Mettre ici la commande de la Macro de saisie !
'
' Reprotection de la feuille active
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:='***', Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
Next i
End Sub

Cordialement

Bernard

Message édité par: CBernardT, à: 25/11/2005 11:03
 
Re le forum.
Merci à Elo6 et Bernard.
Bernard, juste une petite question : est-il possible de définir à l'avance les feuilles à déprotéger car mon fichier en comporte une centaine et je ne souhaite en déprotéger que certaines.
Merci encore.
 
RE,

Dans ce cas là, il faut insérer dans la macro générale une condition qui permet de ne pas intervenir dans les feuilles non concernées.

Sub DeproMacroRepro()
Dim i As Byte

Application.ScreenUpdating = False
'Boucle sur les feuilles du classeur
For i = 1 To Sheets.Count
If i <> 1 And i <> 3 And i <> 4 Then ' Ici mettre toutes les feuilles à ne pas toucher
Sheets(i).Activate
' Deprotection de la feuille active.
With ActiveSheet
.EnableSelection = xlNoRestrictions
.Unprotect Password:='***'
End With
'
'Mettre ici la commande de la Macro de saisie !
'
' Reprotection de la feuille active
With ActiveSheet
.EnableSelection = xlNoSelection
.Protect Password:='***', Contents:=True, UserInterfaceOnly:=True, Scenarios:=True
End With
End If
Next i
Application.ScreenUpdating = True
End Sub

Cordialement

Bernard
 
- 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
3
Affichages
255
Réponses
16
Affichages
2 K
Réponses
10
Affichages
791
Réponses
12
Affichages
1 K
Retour