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 Sub
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
Voici la ligne qui cause une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
formConfigCachees.Columns(consultantColumn).Delete Shift:=xlRight
consultantColumn est le numéro d'une colonne bien rempli dans la feuille formConfigCachees.

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?