La méthode 'color'de l'objet 'interior' a échoué

Bonjour le forum
j'aimerai modifié la couleur d'une plage de cellules en fonction du nom d'une cellule mais quand je lance ma macro mon excel plante et ce message d'erreur apparait...

la macro doit vérifiée que la cellule "attribut lié" de la compétence est bien un des 5 attributs disponible puis changer la couleur de la plage de cellules en fonction de la couleur de l'attribut puis répété le processus autant de fois qu'il y a de compétences

je vous joint mon fichier si des gens ont une idée de pourquoi cette erreur se produit

cordialement

image image 137141 66bc77a65e289482462462

bonjour et

Si vous appuyez sur débogage, quelle est la ligne en surbrillance ?

Comment est lancée la macro ?

18.2407.1241.0 FR n'est pas le renseignement demandé.

La version Excel se trouve dans Fichier > Compte > Propriétés d'Excel (Appuyez sur le point d'interrogation

ver2016

Puis dans l'écran suivant :

ver2016b

Attendu l'année ou 365 + 32bits ou 64bits . éventuellement MAC si vous n'êtes pas sous PC

Bien vouloir modifier ton profil en conséquence (en bas du lien)

A+

Bonjour

la ligne en surbrillance est la deuxième de la boucle while "Range(Cells(L1, 1), Cells(L2, 3)).Interior.Color = RGB(245, 235, 157)"
à noté qu'elle s'exécute correctement étant donné que la couleur de la plage de cellule à été modifié comme on peut le voir sur le screenshot de la feuille

je lance la macro en cliquant sur "exécuté" dans l'onglet macro

Je n'ai pas 365 donc je passe la main à qui en est équipé mais... Pour moi l'onglet macro n'existe pas, donc on ne sait pas vraiment comment est lancé la macro à partir d'Excel ou à partir de VBA ?

Il est supposé que cette macro se trouve dans un module du type Module1 ? ou dans la feuille active ? ou dans ThisWorkbook ?

Dans cette macro vous ne spécifiez pas la feuille et depuis 365 je trouve que Crosoft est devenu très exigeant au niveau syntaxe : Bien que ce ne soit pas encore officiellement exigé, il me semble qu'a chaque fois que vous utilisez ces objets (Range, Cells...) vous devriez préciser une feuille soit active, soit instancié par Set...

A+

La macro est effectivement dans un module voici son chemin.

image

J'ai également essayé de lancer la macro depuis VBA mais le problème persiste...
Je joins mon classeur avec la macro si des gens ont des idées.
Merci à toi d'avoir essayé de m’aider en tout cas

21fiche-swade.xlsm (84.62 Ko)

Bonjour,

le code que tu as fourni donne une boucle infinie et je ne parviens pas à obtenir le message d'erreur que tu reçois.

voici une correction pour le faire fonctionner.

Sub skill_Color_change()
    '
    'Dans SWADE chaque compétence est lié à un attribut, cette macro permet de changer la couleur de la compétence en fonction de la couleur de l'atribut
    '
    'définition des varianles
    '
    Dim checkcell As String
    Dim chekcellL As Integer 'représente la ligne que la variable checkcell doit vérifier
    Dim L1 As Integer
    Dim L2 As Integer
    '
    'définition des instruction
    '
    '
    'Par défaut checkcell est à la première compétence c'est à dire B15
    '
    checkcellL = 15
    checkcell = Cells(checkcellL, 2)
    '
    'Par défaut la zone à colorié est la première compétence c'est à dire A15 à C16
    '
    L1 = 15
    L2 = 16
    '
    'Boucle tant que checkcell ne correspond pas à un des 5 attributs
    '
    Do While checkcell = "Agilité" Or checkcell = "Intellect" Or checkcell = "Ame" Or checkcell = "Force" Or checkcell = "Vigeur" 'correction checkcell au lieu de chekcell
        If checkcell = "Agilité" Then
            Range(Cells(L1, 1), Cells(L2, 3)).Interior.Color = RGB(245, 235, 157)
        ElseIf checkcell = "Intellect" Then
            Range(Cells(L1, 1), Cells(L2, 3)).Interior.Color = RGB(209, 131, 217)
        ElseIf checkcell = "Ame" Then
            Range(Cells(L1, 1), Cells(L2, 3)).Interior.Color = RGB(121, 204, 235)
        ElseIf checkcell = "Force" Then
            Range(Cells(L1, 1), Cells(L2, 3)).Interior.Color = RGB(255, 101, 101)
        ElseIf checkcell = "Vigeur" Then
            Range(Cells(L1, 1), Cells(L2, 3)).Interior.Color = RGB(171, 230, 162)
        Else
            MsgBox ("il n'y a plus de compétence à colorier ou la colonne B n'est pas au bon format")
        End If 'corrigé end if déplacé
        L1 = L1 + 2
        L2 = L2 + 2
        checkcellL = checkcellL + 2
        checkcell = Cells(checkcellL, 2) 'corrigé ajout d'un L)
    Loop
End Sub

la boucle s'arrête donc quand un des attributs n'est pas rencontré (int<>intellectuel !!!!)

ah oui effectivement c'était une bête erreur de frappe
Merci beaucoup pour ton aide h2so4 je clos le sujet

Rechercher des sujets similaires à "methode color objet interior echoue"