Erreur objet sur le range

Résolu
Bonjour,

je travaille sur excel 2010 et j'ai fait beaucoup de vb.

Pour la première fois, je travaille sur la mise en forme conditionnelle avec vb.

ça a fonctionné mais maintenant il bloque sur le .formatcond... ou autre .interior.... que j'utilise avec mon with range...

'erreur d'exécution 1004'
erreur définie par lapplication ou l'objet

Je joins mon code car le fichier est trop gros:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim i As Integer
Dim DerCol As Integer
Dim val1 As Integer
Dim val2 As Integer
Dim colonne As String

Worksheets("Feuil1").Protect , UserInterFaceOnly:=True

DerCol = Range("G6:ZZ6").End(xlToRight).Column

For i = 2 To 5
'MsgBox "val 1 : " & Worksheets("Paramétrage").Cells(i, 2).Value & " val 2 " & Worksheets("Paramétrage").Cells(i + 1, 2).Value
val1 = Worksheets("Paramétrage").Cells(i, 2).Value + 1
val2 = Worksheets("Paramétrage").Cells(i + 1, 2).Value - 1
colonne = NomDeColonne(DerCol)

With Range("G" & val1 & ":" & colonne & val2) 'Sélection des plages où doit s'appliquer la MeF
'Supprime les MFC existantes
.FormatConditions.Delete

.Interior.Color = xlNone
'Ajoute une condition (Vrai lorsque la cellule est non vide)
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:=" "

With .FormatConditions(1)
'Définit la couleur de fond de la cellule lorsque la condition sera vraie.
Select Case i
Case 2
.Interior.Color = Cells(Worksheets("Paramétrage").Cells(i, 2), 2).Interior.Color
Case 3
.Interior.Color = Cells(Worksheets("Paramétrage").Cells(i, 2), 2).Interior.Color
Case 4
.Interior.Color = Cells(Worksheets("Paramétrage").Cells(i, 2), 2).Interior.Color
Case 5
.Interior.Color = Cells(Worksheets("Paramétrage").Cells(i, 2), 2).Interior.Color
End Select
' .Interior.ColorIndex = 15 'Gris

End With
End With
Next i
End Sub

Est-ce que quelqu'un pourrait m'aider, je suis dessus depuis 1 heure + forums...

2 réponses

  1. Bonjour,

    Regardes la valeur des variables val1, val2, colonne, quand ça plante
    0
    1. Bonjour,

      non, il n'y a pas de souci de ce coté là.
      j'ai mis range("A1:B2") et ça plante aussi.

      Je pense que ca vient de la protection ou du nombre de MEF conditionnelle (pourtant j'essaie de les supprimer)
      0
  2. après des vérifications, le probleme vient de la protection.

    Quand je l’enlève en cliquant, ça remarche mais quand je remet la protection, plantage!!!!!!!!

    Pour autant, je verrouille pour être sûr que les autres utilisateurs ne fassent pas de bétises!!!!
    0
    1. Contributeur Ambassadeur
      bonjour,
      tu peux probablement enlever et remettre la protection automatiquement.
      est-ce ce que tu souhaites?
      0
    2. j'ai déjà mis : Worksheets("Feuil1").Protect , UserInterFaceOnly:=True

      qui autorise seulement VBA à faire des modifs
      0
    3. Contributeur Ambassadeur
      @boubou063402et donc, tout va bien?
      0
    4. non, ça plante toujours
      0
    5. Contributeur Ambassadeur
      @boubou063402as-tu essayé
      Worksheets("Feuil1").unprotect
      ?
      0