Couleur Cellule et Couleur Shape

2 réponses
Avatar
eric.weyland
Bonjour, j'ai une macro qui est cens=E9 remplir le fond d'une Shape de
la m=EAme couleur que le fond d'une cellule.

Alors j'ai mis le code suivant :
Selection.ShapeRange.Fill.ForeColor.SchemeColor =3D CouleurPays
(CouleurPays =E9tant une variable CouleurPays =3D
ActiveCell.Interior.ColorIndex).

Mais j'ai deux probl=E8mes : le premier c'est que parfois il me dit que
je num=E9ro de couleur va au del=E0 des limites autoris=E9es (il m'affiche =
4
250 par exemple). Deuxi=E8me probl=E8me c'est que lorsque je change la
couleur de la cellule avec une des couleurs standards d'excel,
r=E9sultat la couleur de la shape n'est pas identique =E0 la couleur de la
cellule !! Pouvez-vous m'aider ? Merci d'avance.

2 réponses

Avatar
Misange
Bonjour

Si tu mets des couleurs par la mise en forme conditionnelle, les N°s de
couleur sont différents des couleurs classiques (par exemple 4250
justement)...
Ensuite si tu changes la couleur de ta cellule manuellement, c'est
normal qu'il ne se passe rien : un changement de format n'est pas un
événement qui entraîne un recalcul de forme ou le lancement d'une macro.
Mais avec tes explications je ne suis pas sure t'avoir bien compris ton
pb...

Misange migrateuse
http://www.excelabo.net : Participez à un travail collaboratif sur excel !


a écrit :
Bonjour, j'ai une macro qui est censé remplir le fond d'une Shape de
la même couleur que le fond d'une cellule.

Alors j'ai mis le code suivant :
Selection.ShapeRange.Fill.ForeColor.SchemeColor = CouleurPays
(CouleurPays étant une variable CouleurPays > ActiveCell.Interior.ColorIndex).

Mais j'ai deux problèmes : le premier c'est que parfois il me dit que
je numéro de couleur va au delà des limites autorisées (il m'affiche 4
250 par exemple). Deuxième problème c'est que lorsque je change la
couleur de la cellule avec une des couleurs standards d'excel,
résultat la couleur de la shape n'est pas identique à la couleur de la
cellule !! Pouvez-vous m'aider ? Merci d'avance.


Avatar
MichDenis
Bonjour,

Un petit complément à ce qu'à énoncer Misange.

(tu ne mentionnes pas la version d'Excel que tu utilises)

Avec une "Shape", Exemple : "Rectangle" dans la feuille 1
Tu as 2 façons de colorer le fond de la shape :

Sub test()
With Feuil1
With .Shapes("Rectangle 1")
'Méthode I : La valeur se situe entre 0 et 56
.OLEFormat.Object.ShapeRange.Fill.ForeColor.SchemeColor = 3
'Méthode II -> Beaucoup plus de couleurs....
'Chaque paramètre de RGB peut prendre les valeurs de 0 à 255
.OLEFormat.Object.ShapeRange.Fill.ForeColor.RGB = RGB(125, 125, 54)
End With
End With
End Sub

En supposant que tu utilises la propriété "ColorIndex" pour
le fond de la shape. Il y a une petite règle à respecter.
La valeur de ColorIndex de la Shape est égale à la valeur
de la propriété ColorIndex d'une cellule +7

Évidemment, comme Misange l'a souligné, une modification
manuelle de la couleur d'une cellule n'entraîne pas une
modification de couleur de la shape !







a écrit dans le message de groupe de discussion :

Bonjour, j'ai une macro qui est censé remplir le fond d'une Shape de
la même couleur que le fond d'une cellule.

Alors j'ai mis le code suivant :
Selection.ShapeRange.Fill.ForeColor.SchemeColor = CouleurPays
(CouleurPays étant une variable CouleurPays ActiveCell.Interior.ColorIndex).

Mais j'ai deux problèmes : le premier c'est que parfois il me dit que
je numéro de couleur va au delà des limites autorisées (il m'affiche 4
250 par exemple). Deuxième problème c'est que lorsque je change la
couleur de la cellule avec une des couleurs standards d'excel,
résultat la couleur de la shape n'est pas identique à la couleur de la
cellule !! Pouvez-vous m'aider ? Merci d'avance.