OVH Cloud OVH Cloud

Protection/Deprotection

4 réponses
Avatar
JRC-QSA
Bonjour,
Quand on veut modifier toutes les feuilles protégées d'un classeur qui en
comportent beaucoup, il faut les déprotéger une par une, puis une fois les
modifs faites, les reprotéger toutes une par une. Long et ch... fastidieux.
Ignorant s'il existe une fonction pour cela, j'ai créé deux petites macros.
L'une Unprotect qui fonctionne bien, du style:

Sheets("Part.01").Select
ActiveSheet.Unprotect
L'autre Reprotect:

Sheets("Part.01").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

qui, elle, ne reprotege rien du tout.
Quelqu'un peut-il m'expliquer pourquoi et me donner le remède ?
Merci d'avance.
JRC-QSA

4 réponses

Avatar
François
Bonjour,

la commande
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
que l'on peut écrire :
ActiveSheet.Protect ,True, True, True
ne met aucun mot de passe. Si tu veux un mot de passe, il faut le mettre
avant la 1ère virgule : "zozo"
Par ailleurs, il est possible d'utiliser :*
For each sheet in Sheets.Count
...

François

"JRC-QSA" a écrit dans le message de
news:
Bonjour,
Quand on veut modifier toutes les feuilles protégées d'un classeur qui en
comportent beaucoup, il faut les déprotéger une par une, puis une fois les
modifs faites, les reprotéger toutes une par une. Long et ch...
fastidieux.
Ignorant s'il existe une fonction pour cela, j'ai créé deux petites
macros.
L'une Unprotect qui fonctionne bien, du style:

Sheets("Part.01").Select
ActiveSheet.Unprotect
L'autre Reprotect:

Sheets("Part.01").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

qui, elle, ne reprotege rien du tout.
Quelqu'un peut-il m'expliquer pourquoi et me donner le remède ?
Merci d'avance.
JRC-QSA


Avatar
JRC-QSA
Merci, mais que je l'écrive d'une façon ou d'une autre, ça ne fonctionne pas
et ne reprotège pas les feuilles de ce classeur.
Autre question par ailleurs, si j'ai dix feuilles dans le classeur, que
mettre dans la parenthèse après sheet pour déprotéger/reprotéger les dix
feuilles ?

A te lire.


Bonjour,

la commande
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
que l'on peut écrire :
ActiveSheet.Protect ,True, True, True
ne met aucun mot de passe. Si tu veux un mot de passe, il faut le mettre
avant la 1ère virgule : "zozo"
Par ailleurs, il est possible d'utiliser :*
For each sheet in Sheets.Count
....

François

"JRC-QSA" a écrit dans le message de
news:
Bonjour,
Quand on veut modifier toutes les feuilles protégées d'un classeur qui en
comportent beaucoup, il faut les déprotéger une par une, puis une fois les
modifs faites, les reprotéger toutes une par une. Long et ch...
fastidieux.
Ignorant s'il existe une fonction pour cela, j'ai créé deux petites
macros.
L'une Unprotect qui fonctionne bien, du style:

Sheets("Part.01").Select
ActiveSheet.Unprotect
L'autre Reprotect:

Sheets("Part.01").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

qui, elle, ne reprotege rien du tout.
Quelqu'un peut-il m'expliquer pourquoi et me donner le remède ?
Merci d'avance.
JRC-QSA







Avatar
ABED HADDOU
Bonjour
Autre question par ailleurs, si j'ai dix feuilles dans le classeur, que
mettre dans la parenthèse après sheet pour déprotéger/reprotéger les dix
feuilles ?


Sub Protects()
For i = 1 To Sheets.Count
sh = Sheets(i).CodeName
Set sh =
Worksheets(ThisWorkbook.VBProject.VBComponents(sh).Properties("Index"))
sh.Protect , True, True, True
Next
End Sub

Abed_H



Merci, mais que je l'écrive d'une façon ou d'une autre, ça ne fonctionne pas
et ne reprotège pas les feuilles de ce classeur.
Autre question par ailleurs, si j'ai dix feuilles dans le classeur, que
mettre dans la parenthèse après sheet pour déprotéger/reprotéger les dix
feuilles ?

A te lire.


Bonjour,

la commande
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
que l'on peut écrire :
ActiveSheet.Protect ,True, True, True
ne met aucun mot de passe. Si tu veux un mot de passe, il faut le mettre
avant la 1ère virgule : "zozo"
Par ailleurs, il est possible d'utiliser :*
For each sheet in Sheets.Count
....

François

"JRC-QSA" a écrit dans le message de
news:
Bonjour,
Quand on veut modifier toutes les feuilles protégées d'un classeur qui en
comportent beaucoup, il faut les déprotéger une par une, puis une fois les
modifs faites, les reprotéger toutes une par une. Long et ch...
fastidieux.
Ignorant s'il existe une fonction pour cela, j'ai créé deux petites
macros.
L'une Unprotect qui fonctionne bien, du style:

Sheets("Part.01").Select
ActiveSheet.Unprotect
L'autre Reprotect:

Sheets("Part.01").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

qui, elle, ne reprotege rien du tout.
Quelqu'un peut-il m'expliquer pourquoi et me donner le remède ?
Merci d'avance.
JRC-QSA









Avatar
gazelle
Ou encore (plus simple) :

Sub protection()
Dim sh
For Each sh In ActiveWorkbook.Worksheets
sh.Protect True, True, True
Next
End Sub



"ABED HADDOU" a écrit dans le message
de news:
Bonjour
Autre question par ailleurs, si j'ai dix feuilles dans le classeur, que
mettre dans la parenthèse après sheet pour déprotéger/reprotéger les
dix
feuilles ?


Sub Protects()
For i = 1 To Sheets.Count
sh = Sheets(i).CodeName
Set sh > Worksheets(ThisWorkbook.VBProject.VBComponents(sh).Properties("Index"))
sh.Protect , True, True, True
Next
End Sub

Abed_H



Merci, mais que je l'écrive d'une façon ou d'une autre, ça ne
fonctionne pas
et ne reprotège pas les feuilles de ce classeur.
Autre question par ailleurs, si j'ai dix feuilles dans le classeur, que
mettre dans la parenthèse après sheet pour déprotéger/reprotéger les
dix
feuilles ?

A te lire.


Bonjour,

la commande
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True
que l'on peut écrire :
ActiveSheet.Protect ,True, True, True
ne met aucun mot de passe. Si tu veux un mot de passe, il faut le
mettre
avant la 1ère virgule : "zozo"
Par ailleurs, il est possible d'utiliser :*
For each sheet in Sheets.Count
....

François

"JRC-QSA" a écrit dans le message
de
news:
Bonjour,
Quand on veut modifier toutes les feuilles protégées d'un classeur
qui en
comportent beaucoup, il faut les déprotéger une par une, puis une
fois les
modifs faites, les reprotéger toutes une par une. Long et ch...
fastidieux.
Ignorant s'il existe une fonction pour cela, j'ai créé deux petites
macros.
L'une Unprotect qui fonctionne bien, du style:

Sheets("Part.01").Select
ActiveSheet.Unprotect
L'autre Reprotect:

Sheets("Part.01").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

qui, elle, ne reprotege rien du tout.
Quelqu'un peut-il m'expliquer pourquoi et me donner le remède ?
Merci d'avance.
JRC-QSA