Bonjour à tous,
Le principal est dans le titre... J'ai une feuille excel, dans laquelle certaine cellule ne doivent pas être modifier par l'utilisateur (mais les autres oui). Cependant j'ai un macro qui utilise ces cellules non modifiables en modifie d'autres. J'ai donc protégé mes cellules avec outils/Protection et ma macro me dit "Erreur d'éxécution 1004 : Impossible de définir la propriété ColorIndex de la classe Interior"

Erreur que je n'ai pas lorsque mes cellules ne sont pas protégé.

aprés de nombreuses recherches sur différents forum j'ai testé plusieurs codes consistant à déprotéger les cellules, éxécuter la macro, et reprotéger les cellules, mais sans succés ....
avec le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   Sheets("Feuil3").Unprotect "pwd" .....
.....
....    Sheets("Feuil3").Protect "pwd"
ou le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
   Worksheets("Feuil3").Protect userinterfaceonly:=True, Password:="pwd"
j'ai l'erreur "Erreur d'éxécution 9 : L'indice n'appartient pas à la sélection"

Pour infos je voudrais bloquer la modification des cellules A4 à L53 uniquement ...

Voici mon code dans son ensemble :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Private Sub CommandButton1_Click()
  ' Sheets("Feuil3").Unprotect "pwd"
   Worksheets("Feuil3").Protect userinterfaceonly:=True, Password:="pwd"
    For i = 5 To Range("A" & Rows.Count).End(xlUp).Row
        For j = 13 To 24 ' Range("A1").End(xlToRight).Column + 1
            If Cells(i, j).Value = 1 Then
                    Cells(i, j).Interior.ColorIndex = 15
                ElseIf Cells(i, j).Value = 2 Then
                    Cells(i, j).Interior.ColorIndex = 48
                ElseIf Cells(i, j).Value = 3 Then
                    Cells(i, j).Interior.ColorIndex = 16
                Else
                     Cells(i, j).Interior.ColorIndex = xlNone
            End If
            If Cells(i, j) > 0 Then
                Select Case Cells(3, j)
                    Case "CM"
                        If (Cells(i, 9).Value < Cells(4, j).Value) Then
                            Cells(i, j).Interior.ColorIndex = 3
                        End If
                    Case "CF"
                        If (Cells(i, 10).Value < Cells(4, j).Value) Then
                            Cells(i, j).Interior.ColorIndex = 3
                        End If
                    Case "AM"
                        If (Cells(i, 11).Value < Cells(4, j).Value) Then
                            Cells(i, j).Interior.ColorIndex = 3
                        End If
                    Case "RL"
                        If (Cells(i, 12).Value < Cells(4, j).Value) Then
                            Cells(i, j).Interior.ColorIndex = 3
                        End If
                End Select
            End If
        Next
    Next
   ' Sheets("Feuil3").Protect "pwd"
End Sub
Je vous remercie d'avance pour votre aide. Vu le nombres de personnes qui ont eu le même problème, je vais bien finir par trouver la solution =)