Bonjour,
J'ai un problème avec la protection des feuilles de mon classeur. Je vous explique:
A l'ouverture de mon classeur, toutes les feuilles deviennent protégées avec l'option UserInterfaceOnly = True.
Cela devrait me permettre normalement d'agir sur toutes les feuilles uniquement via les procédures de mon projet VBA.
Malheureusement, des fois ça marche (j'arrive à supprimer des colonnes d'une feuille via un UserForm) et des fois non.
Voici le code qui permet de protéger les feuilles du classeur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Workbook_Open() ModuleCommons.protectAllSheets End SubVoici la ligne qui cause une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Public Sub protectAllSheets() Dim I As Integer Application.ScreenUpdating = False For I = 1 To Worksheets.Count Worksheets(I).Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True, AllowSorting:=True, AllowFiltering:=True, UserInterfaceOnly:=True Next I Application.ScreenUpdating = True End Sub
consultantColumn est le numéro d'une colonne bien rempli dans la feuille formConfigCachees.
Code : Sélectionner tout - Visualiser dans une fenêtre à part formConfigCachees.Columns(consultantColumn).Delete Shift:=xlRight
Et voici le message d'erreur:
Error 1004: La méthode Delete de la classe Range a échoué
J'ai bien vérifié dans les deux cas (celui où ça marche et celui où ça ne marche pas) que juste avant de faire le Delete, j'avais formConfigCachees.ProtectionMode = Vrai.
quelqu'un aurait-il une réponse où une idée à mon problème?
Partager