Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Protection sélective de feuilles

3 réponses
Avatar
michir
Bonjour,

Je reviens sur mon probl=E8me de verrouillage de formules
Je souhaite prot=E9ger les formules d'un certain nombre de feuilles de
mon classeur (pas toutes) par un bouton macro
J'utilise la macro suivante (MichD) que je souhaite adapter:

Sub test()
With Worksheets("Feuil1")
.Unprotect
With .Cells
.Locked =3D False
With .SpecialCells(xlCellTypeFormulas)
.Locked =3D True
End With
End With
.Protect 'Mot de passe si n=E9cessaire
End With
End Sub

Question:
1) o=F9 dois je placer cette proc=E9dure derri=E8re chacune des feuilles
(Jour 1 =E0 Jour 20), dans un module ou dans Thisworkbook ?
2) comment la faire fonctionner en bascule (Prot=E9ger/ D=E9prot=E9ger) ?
3) je souhaiterais porter l'information sur l'=E9tat de la protection,
sans doute par une Msgbox informant de l'activation ou non de la
protection, ou bien toute autre solution

Merci =E0 tous
Michel

3 réponses

Avatar
Gloops
michir a écrit, le 19/03/2011 08:29 :
Bonjour,

Je reviens sur mon problème de verrouillage de formules
Je souhaite protéger les formules d'un certain nombre de feuilles de
mon classeur (pas toutes) par un bouton macro
J'utilise la macro suivante (MichD) que je souhaite adapter:

Sub test()
With Worksheets("Feuil1")
.Unprotect
With .Cells
.Locked = False
With .SpecialCells(xlCellTypeFormulas)
.Locked = True
End With
End With
.Protect 'Mot de passe si nécessaire
End With
End Sub

Question:
1) où dois je placer cette procédure derrière chacune des feuille s
(Jour 1 à Jour 20), dans un module ou dans Thisworkbook ?
2) comment la faire fonctionner en bascule (Protéger/ Déprotéger) ?
3) je souhaiterais porter l'information sur l'état de la protection,
sans doute par une Msgbox informant de l'activation ou non de la
protection, ou bien toute autre solution

Merci à tous
Michel








Bonjour,

Tu auras peut-être remarqué la première ligne de la macro ?
With Worksheets("Feuil1")


Tu peux mettre cette macro plus ou moins où tu veux (même si un modul e
serait a priori plus sa place), elle traitera toujours la feuille
"Feuil1" du classeur actif. Si aucune feuille ne s'appelle "Feuil1" ça
déclenchera une erreur.

Si il y a plusieurs feuilles à traiter la première chose à faire es t de
trouver un critère pour les désigner. Si il n'existe pas de critère tout
prêt, il faudra créer un tableau avec la liste des feuilles dans une
colonne, et dans une autre une valeur indiquant si on veut que la
feuille correspondante soit traitée.

Admettons que le tableau où tu as fait la liste s'appelle ListeFeuilles

Set R = ActiveWorkbook.Names("ListeFeuilles").RefersToRange

For Each L in R.Rows
If L.Cells(2) = -1
Test ThisWorkbook.Worksheets(L.Cells(1))
End If
Next

Dans la macro Test tu mets le code que tu as donné ci-dessus mais en
appelant le premier argument à la place de Worksheets("Feuil1")


Sub Test(W As Worksheet)
With W
.Unprotect
'Modifier
.Protect
End With
End Sub

Voilà pour la première question.
Avatar
LSteph
Bonjour,

Sub test()
'en repartant de celle de MD
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Sheets

With Sh
Select Case LCase(Left(.Name, 4))
Case Is = "jour"
.Unprotect 'Mot de passe si nécessaire

With .Cells
.Locked = False
With .SpecialCells(xlCellTypeFormulas)
.Locked = True
End With
End With
.Protect 'Mot de passe si nécessaire
End Select
End With

Next Sh
End Sub

'lSteph


"michir" a écrit dans le message de
news:
Bonjour,

Je reviens sur mon problème de verrouillage de formules
Je souhaite protéger les formules d'un certain nombre de feuilles de
mon classeur (pas toutes) par un bouton macro
J'utilise la macro suivante (MichD) que je souhaite adapter:

Sub test()
With Worksheets("Feuil1")
.Unprotect
With .Cells
.Locked = False
With .SpecialCells(xlCellTypeFormulas)
.Locked = True
End With
End With
.Protect 'Mot de passe si nécessaire
End With
End Sub

Question:
1) où dois je placer cette procédure derrière chacune des feuilles
(Jour 1 à Jour 20), dans un module ou dans Thisworkbook ?
2) comment la faire fonctionner en bascule (Protéger/ Déprotéger) ?
3) je souhaiterais porter l'information sur l'état de la protection,
sans doute par une Msgbox informant de l'activation ou non de la
protection, ou bien toute autre solution

Merci à tous
Michel
Avatar
MichD
Tu as une réponse sur ton autre fil sur le sujet.



MichD
--------------------------------------------