PROTÉGER ET DÉPROTÉGER TOUTES LES FEUILLES D'UN CLASSEUR

Signaler
Messages postés
3
Date d'inscription
samedi 28 août 2004
Statut
Membre
Dernière intervention
5 août 2005
-
Messages postés
16
Date d'inscription
jeudi 10 août 2006
Statut
Membre
Dernière intervention
2 avril 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/7874-proteger-et-deproteger-toutes-les-feuilles-d-un-classeur

Messages postés
16
Date d'inscription
jeudi 10 août 2006
Statut
Membre
Dernière intervention
2 avril 2008

Bon désolé de poster encore une fois, mais j'ai enlevé les parties du code qui ne servent à rien et ai aéré le code:

Sub ProtectedSheets()

' Protection automatique de toutes les feuilles d'un classeur

Dim nombre As Double
Dim i As Integer

nombre = ThisWorkbook.Worksheets.Count

For i = 1 To nombre
Worksheets(i).Protect
Next i

End Sub

'----------------------------------------

Sub UnprotectedSheets()

' Suppression automatique de la protection de toutes les feuilles d'un classeur

Dim nombre As Double
Dim i As Integer

nombre = ThisWorkbook.Worksheets.Count

For i = 1 To nombre
Worksheets(i).Unprotect
Next i

End Sub
Messages postés
16
Date d'inscription
jeudi 10 août 2006
Statut
Membre
Dernière intervention
2 avril 2008

La variable "nombre" peut être déclarée comme suit dans les deux subs:

Dim nombre As Double

Je me suis trompé dans mon précédent message.
Messages postés
16
Date d'inscription
jeudi 10 août 2006
Statut
Membre
Dernière intervention
2 avril 2008

Bonjour,
je pense que le code comporte quelques erreurs. En voici la version corrigée:

Sub Protéger()
' Protection automatique de toutes les feuilles d'un classeur
Dim nombre As Variant
Dim i As Integer
nombre = ThisWorkbook.Worksheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Protect , password:="blabla"
Next i
End Sub

Sub Déprotéger()
' Déprotection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
Dim i As Integer
nombre = ThisWorkbook.Worksheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
Worksheets(i).Unprotect , password:="blabla"
Next i
End Sub
Messages postés
3
Date d'inscription
samedi 28 août 2004
Statut
Membre
Dernière intervention
5 août 2005

Bonjour,
je n'arrive pas à faire fonctionner cette macro!
Je possède un classeur de 84 feuilles que je souhaiterais protéger ou déprotéger en une seule fois.
Merci de m'indiquer s'il existe une solution