Pb. d'autorisation dans une feuille protégée

Bonjour à tous,

Dans une feuille protégée, j'avais des cellules déverrouillées pour lesquelles l'utilisateur devait pouvoir changer la couleur de police. Pour la protéger, je réglais donc les options comme ça et ça allait :

capt

Mais ensuite, grâce à l'aide du forum , j'ai rajouté une macro, et aussi un code dans ThisWorkbook afin que cette macro puisse s'effectuer malgré la protection.
La macro s'effectue très bien malgré la protection, mais depuis, à chaque fois que je ferme et ré ouvre le fichier, l'accès au format de cellule est impossible.
A chaque fois que je l'ouvre, si je veux changer le format d'une cellule, je suis obligé d'ôter la protection, re cocher, re protéger, et là ça marche, jusqu'à ce que je referme le classeur.
Ce n'est bien sûr pas envisageable car l'utilisateur final n'est pas censé toucher à la protection...

Quelqu'un aurait une idée de solution?

A tout hasard, voici le code que j'ai mis dans Thisworkbook :

Private Sub Workbook_Open()
Dim wSheetName As Worksheet
For Each wSheetName In Worksheets
wSheetName.Protect Password:="", UserInterFaceOnly:=True
Next wSheetName
End Sub

Merci beaucoup.

Je n'ai toujours rien trouvé de mon côté ; je me permets de remonter le message, à tout hasard...

Merci

Bonjour,

Essaie ainsi :

Private Sub Workbook_Open()
Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Protect Password:="", _
                   DrawingObjects:=True, _
                   Contents:=True, _
                   Scenarios:=True, _
                   userinterfaceonly:=True, _
                   AllowFormattingCells:=True
        ws.EnableSelection = xlUnlockedCells
    End With
End Sub

Cdlt.

Bonjour Jean-Eric,

J'ai essayé, mais lorsque je ré ouvre le classeur, j'ai une erreur : End With sans with.

Mais ton code m'a inspiré et j'ai essayé comme ça :

Private Sub Workbook_Open()
Dim wSheetName As Worksheet
For Each wSheetName In Worksheets
wSheetName.Protect Password:="", UserInterFaceOnly:=True, AllowFormattingCells:=True
Next wSheetName
End Sub

Et ça fonctionne impeccable.

Merci beaucoup Jean-Eric

Bonjour,

oups !...

Private Sub Workbook_Open()
Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Protect Password:="", _
                   DrawingObjects:=True, _
                   Contents:=True, _
                   Scenarios:=True, _
                   userinterfaceonly:=True, _
                   AllowFormattingCells:=True
        ws.EnableSelection = xlUnlockedCells
    Next ws
End Sub

Pas de problème

Rechercher des sujets similaires à "autorisation feuille protegee"