Bonjour,
je voudrais exécuter une action si la cellule D2 est jaune par exemple. Je crois qu'il faut utilisermais j'ai pas trouvé d'exemple. Pourriez-vous me dire comment faire, svp?Code:Interior.ColorIndex
Merci d'avance
Arsene
Version imprimable
Bonjour,
je voudrais exécuter une action si la cellule D2 est jaune par exemple. Je crois qu'il faut utilisermais j'ai pas trouvé d'exemple. Pourriez-vous me dire comment faire, svp?Code:Interior.ColorIndex
Merci d'avance
Arsene
Bonjour,
tout dépend du jaune choisi bien sûr !
pour trouver le bon, active l'enregistreur de macro et colorie une cellule avec la couleur voulue, tu auras plutôt le .Color que le .ColorIndex
Code:
1
2
3 If Workbooks("NomDuClasseur").Worksheets("NomDeLaFeuille").Range("D2").Interior.ColorIndex = vbYellow Then ' ou alors If Workbooks("NomDuClasseur").Worksheets("NomDeLaFeuille").Range("D2").Interior.Color = 65535 Then
Merci. J'ai essayé :
J'ai pas eu de bug mais la MsgBox n'a rien répondu. J'utilise le jaune standard.Code:
1
2
3
4
5 If Worksheets("MaFeuille").Range("D2").Interior.ColorIndex = vbYellow Then MsgBox ("Yellow") End If
ne donne aucun résultat aussi.Code:
1
2
3 If Worksheets("MaFeuille").Range("D2").Interior.Color = 65535 Then If Worksheets("MaFeuille").Range("D2").Interior.Color = "65535" Then
Si c'est du jaune "pur" :
ou bien :Code:If Range("D2").Interior.Color = RGB(255, 255, 0)
Si ce n'est pas du jaune pur, il va falloir jouer sur les codes RGB.Code:If Range("D2").Interior.Color = vbYellow
Attention : vbYellow n'est pas un numéro d'index de couleur mais le code RGB de la couleur.
Il fonctionne avec Color mais pas avec ColorIndex.
Oui t'as raison :aie:
J'ai fait :
J'ai obtenu le numéro de la couleur : 16777215Code:MsgBox (Range("D2").Interior.Color)
J'ai fait :
La MsgBox a affiché Yellow.Code:
1
2
3
4
5 If Range("D2").Interior.Color = 16777215 Then MsgBox ("Yellow") End If
J'ai testé avec la cellule H2 qui est colorée en orange et j'ai obtenu la même réponse.
Si je remplace Color par ColorIndex, j'obtiens -4142 quelque soit la couleur de la cellule.
En utilisant une fonction RGB() comme indiqué dans mon poste, ça aurait été plus propre.
Pour info, 16777215 c'est blanc. C'est l'équivalent de RGB(255,255,255).
Jaune c'est 65535.
Tes couleurs ne seraient-elles pas issues d'une mise en forme conditionnelle ?Citation:
J'ai testé avec la cellule H2 qui est colorée en orange et j'ai obtenu la même réponse.
Si je remplace Color par ColorIndex, j'obtien -4142 quelque soit la couleur de la cellule.
(je pose la question en étant quasiment sûr de la réponse étant donné le "jaune - blanc" évoqué ci-dessus).
C'est exact. J'utilise bien la mise en forme conditionnelle. Alors j'ai testé sur une cellule que j'ai colorié manuellement, ça marche.
Code:
1
2
3
4
5 If Worksheets("MaFeuille").Cells(3, 11).Interior.Color = 65535 Then MsgBox ("Yellow1") End If
répond bien 65535Code:MsgBox (Worksheets("MaFeuille").Cells(3, 11).Interior.Color)
Comment fait-on quand la couleur provient d'une mise en forme conditionnelle?
On passe par DisplayFormat : https://msdn.microsoft.com/fr-fr/lib...4(v=office.15)