Protéger et déprotéger

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
 
E

elo6

Guest
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
 

CBernardT

XLDnaute Barbatruc
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
 
M

Marty

Guest
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.
 

CBernardT

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
16
Affichages
545

Statistiques des forums

Discussions
312 963
Messages
2 093 998
Membres
105 906
dernier inscrit
aifa