Personnaliser macro Protection multifeuilles

Bonjour

J'ai utilisé sur mon fichier la macro donnée dans le fichier Protect fourni dans le post

https://forum.excel-pratique.com/excel/p ... 15395.html

Et cela marche très bien. Toutefois j'aimerai pouvoir "personnaliser" les fonctions protégées ou non, en cochant ou décochant les options proposées dans la fenêtre Protéger la feuille.

Avec cette macro, seule l'option Sélectionner les cellules déverrouillées est cochée.

Merci pour votre aide

Salut Valérie,

Si tu enregistres une macro à l'aide de l'enregistreur et que tu joues sur les différentes options de protection, tu peux aller voir dans le code les instructions y relatives.

J'ai par exemple enregistré la macro correspondant à l'image ci-dessous et ça donne le code suivant :

Sub Macro3()
'
' Macro3 Macro
'

'
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingColumns:=True, AllowInsertingColumns:=True, _
        AllowInsertingHyperlinks:=True
End Sub
capture

Cordialement.

Bonjour Yvouille

Je te remercie pour ta réponse. Je vois bien ce que tu m'indiques mais le souci c'est que je ne sais absolument pas faire de macro... Je bidouille ce que je peux à vrai dire.

Et ce que tu m'écris, ben c'est un peu du chinois...

Dans mon cas je souhaite juste cocher le format de cellules !

Peux-tu m'aider pour rajouter cette option dans la macro Protéger ?

Sub Protéger()

' Protection automatique de toutes les feuilles d'un classeur

Dim nombre As Integer

Dim Motdepasse As String

Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur toutes les feuilles", "")

nombre = ActiveWorkbook.Sheets.Count

Application.ScreenUpdating = False

For i = 1 To nombre

Worksheets(i).Protect Password:=Motdepasse

Next i

End Sub

Je te remercie par avance

En enregistrant une macro pour une protection basique de la feuille, on obtient le code suivant :

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

En y ajoutant l'option ''Format de cellule'', ça devient :

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True

On voit donc que l'instruction AllowFormattingCells correspont à ''Format de cellule''. Les autres instructions concernant DrawingObjects, Contents et Scenarios ne semblent pas obligatoires.

Voici donc ton code transformé, avec le passage remplacé mis en commentaire avec 5 ' :

Sub Protéger()
' Protection automatique de toutes les feuilles d'un classeur
Dim nombre As Integer
Dim Motdepasse As String
Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur toutes les feuilles", "")
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For i = 1 To nombre
'''''Worksheets(i).Protect Password:=Motdepasse
Worksheets(i).Protect AllowFormattingCells:=True, Password:=Motdepasse
Next i
End Sub

Pour modifier toi-même ce code pour d'autres usages, fais très attention aux endroits où il y a des virgules ou non.

Amicalement

Merci Yvouille

J'avais réussi à me dépatouiller en cherchant un peu... comme je disais c'est vraiment du bidouillage !

Encore merci de ton aide

Bonne journée

Rechercher des sujets similaires à "personnaliser macro protection multifeuilles"