7
votes

Comment puis-je contrôler la couleur des segments de graphique à secteurs individuels dans Excel?

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.

merci,

Steve


0 commentaires

4 Réponses :


2
votes
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

1 commentaires

.Colorindex est une méthode obsolète d'Excel 2003, lorsque les couleurs d'Excel étaient beaucoup plus limitées. Vous pouvez utiliser .Color et transmettre directement la valeur RVB.



2
votes

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


0 commentaires


0
votes

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.

 Entrez la description de l'image ici p>

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;
    }
  }


2 commentaires

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 :)