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 :
ou le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sheets("Feuil3").Unprotect "pwd" ..... ..... .... Sheets("Feuil3").Protect "pwd"
j'ai l'erreur "Erreur d'éxécution 9 : L'indice n'appartient pas à la sélection"
Code : Sélectionner tout - Visualiser dans une fenêtre à part Worksheets("Feuil3").Protect userinterfaceonly:=True, Password:="pwd"
Pour infos je voudrais bloquer la modification des cellules A4 à L53 uniquement ...
Voici mon code dans son ensemble :
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 =)
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
Partager