VBA - erreur dans mon code?

Sybille

XLDnaute Junior
Bonjour,

j'ai écrit cette macro pour protéger tout mes onglets sans bloquer la possibilité de mettre une couleur à une cellule.

Toutefois, mon code ne marche pas...

quelqu'un peut -il me dire ou se trouve mon erreur? J'ai retourné mon code dans tout les sens (et toute la journée!!) , c'est écrit de cette manière que ça bugue le moins...

A l'avance merci,




Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets

If sh.Name <> "Lecture" Then
With sh.Cells
sh.EnableAutoFilter = True
sh.EnableOutlining = True
sh.Protect Contents:=True, Password:="XXX", UserInterfaceOnly:=True, DrawingObjects:=True, Contents:=True, Scenarios:=True

End With
End If
Next sh

End Sub
 

VDAVID

XLDnaute Impliqué
Re : VBA - erreur dans mon code?

Bonjour Sybille,

Peut-être comme ceci:

Code:
Sub Test()

Dim sh As Worksheet
For Each sh In ThisWorkbook.Worksheets

If sh.Name <> "Lecture" Then
With sh.Cells

sh.Protect Contents:=True, Password:="XXX", UserInterfaceOnly:=True, DrawingObjects:=True, Scenarios:=True, AllowFormattingCells:=True

End With
End If
Next sh

End Sub

Cependant, c'est la mise en forme au global des cellules qui est autorisée via cette méthode (Mettre en gras, bordure...).
L'erreur dans ton code provient de Contents:=True que tu déclares deux fois.

En espérant t'avoir aidé !
Bonne soirée
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : VBA - erreur dans mon code?

Bonjour Sybille, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim O As Object
For Each O In Sheets
    If O.Name <> "Lecture" Then
        O.Protect DrawingObjects:=True, Password:="XXX", Contents:=True, Scenarios:=True _
            , AllowFormattingCells:=True
    End If
Next O
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 264
Membres
103 498
dernier inscrit
FAHDE