J'aimerais pouvoir contrôler la couleur des sections dans un graphique à tarte programmiquement. Idéalement, mon tableau serait basé sur une table à 3 colonnes avec les colonnes étant: la valeur de données, l'étiquette et la valeur de couleur de la graphique à tarte. Les valeurs de couleur constitueraient les mêmes numéros que l'on voit dans les propriétés de formulaire d'accès. P>
merci, p>
Steve p>
4 Réponses :
Sub a() ActiveSheet.ChartObjects("Chart 1").Activate ActiveChart.SeriesCollection(1).Points.Item(1).Interior.ColorIndex = 7 End Sub You can learn the color represented by ColorIndex with the trick I posted in This Other Answer
.Colorindex Code> est une méthode obsolète d'Excel 2003, lorsque les couleurs d'Excel étaient beaucoup plus limitées. Vous pouvez utiliser
.Color code> et transmettre directement la valeur RVB.
Peut-être quelque chose sur ces lignes?
Dim ws As Worksheet Dim sh As Shape Set ws = Sheet2 Set sh = ws.Shapes.AddChart '.Select With sh.Chart .ChartType = xlPie .SetSourceData Source:=Range("Sheet1!$A$1:$B$3") For i = 1 To .SeriesCollection(1).Points.Count With .SeriesCollection(1).Points(i).Format.Fill .ForeColor.RGB = Range("C" & i).Interior.Color .Solid End With Next End With
Tout d'abord, je sais que cela peut être fait. Begraphic dispose d'un complément Freebie Excel avec une fonctionnalité permettant de définir les couleurs d'élément de graphique dans la SpreadHseet. Voir: P>
Ceci utilise un complément. Je dois dire que les résultats sont impressionnants. Pour moi, j'avais besoin de quelque chose de plus Excel- Native em>, beaucoup d'autres là-bas trouveront cette option Tall-étage. P>
tandis que l'option VB de Remou et Begraphic's Add-in font l'acte. Pour moi, ou le projet actuel au moins, j'ai besoin d'une solution basée sur Excel (autant que possible et est possible). En attendant, vos belles personnes et moi-même pouvons trouver du travail via VB, VBA, .NET et / ou Macros. Visitez le site de Jon P pour les options disponibles. P>
Si je découvre ' plus em>' - je vais le transmettre sur cette requête. P>
aloha em>
p>
Peut-être que cela peut être fait à l'aide de VBA, mais ici, je propose une autre solution qui vous permet de faire cela en utilisant JavaScript fort>. Vous pouvez utiliser un complément Excel gratuit appelé Funfun qui vous permet d'utiliser le code JavaScript directement dans Excel. Cela étant dit, vous pouvez utiliser des bibliothèques telles que HighChartChart.js ou D3.js pour dessiner un graphique à secteurs et contrôler la couleur individuellement. Voici un exemple que j'ai fait en fonction de votre description. Les couleurs de différentes parties du graphique à secteurs sont déterminées par les données de la troisième colonne dans la feuille de calcul. Dans cet exemple, j'ai utilisé Highchartarts.js pour contrôler le dessin de ce tableau. Le code spécifique qui contrôle la couleur pourrait être considéré comme ci-dessous. p> var pieColors =[];
for(var i=1;i<data.length;i++){
switch(parseInt(data[i][2])){
case 0:
pieColors.push('blue');
break;
case 1:
pieColors.push('green');
break;
case 2:
pieColors.push('orange');
break;
case 3:
pieColors.push('purple');
break;
case 4:
pieColors.push('red');
break;
case 5:
pieColors.push('brown');
break;
}
}
Apprendre un petit VBA, qui fait partie intégrante d'exceller, de modifier un graphique Native Excel, est probablement une meilleure approche qu'une approche JavaScript non Excel pour modifier un graphique non Excel. Quelques autres réponses montrent des approches VBA.
Pour certains problèmes, oui. Mais l'avantage d'utiliser JavaScript est la possibilité d'utiliser des bibliothèques tierces qui faciliteront la tracer des graphiques complexes dans Excel. Et j'ai mentionné que cela pourrait être fait avec VBA au tout début, je viens de proposer une autre perspective :)