Protection sélective de feuilles

Le
michir
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #23215851
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.
LSteph
Le #23217321
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" 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
MichD
Le #23219101
Tu as une réponse sur ton autre fil sur le sujet.



MichD
--------------------------------------------
Publicité
Poster une réponse
Anonyme