Comment obtenir des couleurs fait par une échelle de couleurs de la mise en forme conditionnelle d'Excel 2012 par code VBA
J'ai besoin de savoir: comment obtenir des couleurs fait par une échelle de couleurs de la mise en forme conditionnelle d'Excel 2010 au travers du code VBA. Ces couleurs seront ensuite attribués par VBA comme arrière-plan du graphique selon l'image suivante:
www.lnkm.cz/Slozka/Example.jpg http://www.lnkm.cz/Slozka/Example.jpg
J'ai fait une recherche sur divers sites web et:
- La plupart des gens conseils sur la façon de lire la couleur de la mise en forme conditionnelle par la méthode
<Cell>.FormatConditions(index that is active).Interior.ColorIndex
mais dans mon cas, ce n'est pas la cause de l'erreur “cet Objet ne gère pas cette propriété ou cette méthode” - Certaines personnes des conseils pour écrire calcul de couleurs (basé sur les cellules de la valeur). J'ai trouvé différentes façons de le faire, mais aucun d'eux ne peut calculer les mêmes couleurs que a été calculé précédemment par excel (même les couleurs comme sur la photo précédente).
Donc je pose la question:
- Est directement prêt couleurs à partir de cellules? (ou ces couleurs ne sont pas accessibles pour l'API)
- Savez-vous comment calculer les mêmes couleurs que excel de calcul?
- Connaissez-vous une autre façon de comment résoudre mon problème?
Je crois qu'elle a à travailler en quelque sorte.
- Avez-vous un code spécifique de l'échantillon que vous essayez de travailler à travers? Pas tout à fait claire sur ce que vous essayez de faire. Il est facile de lire les couleurs directement à partir de cellules comme
oSheet.Range("A1").Interior.Color
ouoSheet.Range("A1").Interior.ColorIndex
. Peut-être il y a un autre bug dans le code que nous pouvons vous aider avec. - Pour votre "Objet" d'une erreur sur le point #1, vous devez définir votre cellule à quelque chose d'abord. Soit faire référence directement (par exemple,
ActiveSheet.Range("A1")>.FormatConditions(SomeVariable).Interior.ColorIndex
) ouSET
comme une variable (par exemple,Set MyCell = ActiveSheet.Range("A1")
) - Salut Gaffi, merci pour votre réponse, mais je l'ai déjà fait. Je établis par diverses cellules par différents moyens (fonction, les cellules sélectionnées, etc.). Je l'ai mis après .FormatConditions(SomeVariable), d'autres en commande qui était déjà au travail. Donc, je pense que "FormatConditions" ne sais pas "de l'intérieur"
Vous devez vous connecter pour publier un commentaire.
si pas de meilleure réponse, vous pouvez essayer cette solution de contournement:
=Sheet1!A1
)""
, c'est à dire littéral de chaîne vide (2 doubles quotes))Mise à JOUR:
ou vous pouvez essayer de calculer la couleur par approximation linéaire pour chaque R, G, B canal si le format conditionnel utilise que 2 couleurs de base (r1, g1, b1) et (r2, g2, b2) pour les 2 cas de coin qui peut être
min
etmax
valeur, par exemple: 0 - 4 000min
etmax
pour cent, par exemple: 10% - 90%(je crois que vous pouvez utiliser % * [max_value - min_value] pour obtenir la valeur réelle)
min
etmax
percentile, par exemple: 0e percentile - 100e centilede pour cent /centile options, vous devez d'abord les convertir une valeur réelle pour le pour cent /percentile de la valeur, alors si
value < min
ouvalue > max
utiliser le coin des couleurs, sinon:Cela permettra de copier une image d'une cellule du coin supérieur gauche d'un chartobject sur la même feuille de calcul. Remarque l'image est liée à la copie de la cellule si la valeur ou la mise en forme des changements de couleur, elle va changer de match.
EDIT: je viens de testé avec un assez petit 4x8 matrice de cellules, de diagrammes et de la performance est assez mauvais! Peut-être mieux de simplement coller sans Lien:=Vrai ...
Ce n'est pas spécifique à votre problème, mais peut être facilement modifié pour résoudre votre problème...
Essayez ceci:
Cela devrait word Excel au plus tard en 2010.
Cela a fonctionné pour moi, en fonction de la réponse de JKirchartz
C'est de répondre en partie à votre question. La colonne 1 du tableau ci-dessous répertorie Excel standard de 40 couleurs. Les colonnes 2, 3 et 4 de la liste rouge, vert et bleu de chaque couleur. Donc, si vous voulez une cellule de la police de caractères à la lumière orange:
Si vous essayez de tout autre rouge-vert-combinaison, Excel va le faire correspondre à la plus proche l'une de ces couleurs standard bien qu'Excel de l'idée de "la plus proche" ne correspond pas à la mienne.
Espère que cela aide si vous obtenez l'autre partie de la réponse à votre question.