Altere as cores do gráfico de pizza

0

Alguém pode fornecer um exemplo de como alterar as cores de um gráfico de pizza? (As peças reais do gráfico de pizza). As peças são referidas como pontos? Eu gostaria de escolher uma cor usando RGB para cada peça. Obrigado!

    
por user1813558 07.12.2012 / 23:09

2 respostas

1

Pessoalmente O Blog de gráficos de Peltier é minha fonte de gráficos do Excel. Então, dê uma olhada em algumas das amostras que ele discutiu lá. Para saber mais, aqui está o MVP

Eu não acho maravilhoso copiar seus códigos aqui . Portanto, experimente os tutoriais mencionados nos materiais acima e comente se você tiver outras dúvidas. E aqui estão alguns fatos que poderiam ser úteis em sua Charting Journey para ser suave e divertida.

Para ser muito específico na formatação RGB Colour das suas pie chart slices, aqui está a linha de código:

Por exemplo

ActiveChart.SeriesCollection(1).Points(1).Interior.Color = RGB(0, 176, 80)

Você pode encontrar RGB números de cores do aplicativo MS Paint no Windows :) Senão, aqui está um artigo que mostra algumas cores e os números RGB correspondentes.

Como o espectro de cores é infinito, ele deve ser bom o suficiente para colorir o extra fatiado pie chart , você pode pensar ... NO ENTANTO não esqueça que o Excel paleta de cores padrão tem 56 índices de cor. Como o Excel 2003. Então, às vezes, há problemas ao usar seu arquivo de gráfico em uma versão diferente do Excel - onde você encontra algumas cores estão faltando e apenas sendo substituídas por cores antigas e desagradáveis;)

Por exemplo Um gráfico criado no Excel 2007 e acima tem uma rica experiência gráfica em cores para o usuário. No entanto, o Excel 2003 não fornece isso, mas é gerenciável (e extremamente excelente no desempenho). No Excel 2007 e posterior, as pastas de trabalho podem suportar milhões de cores, mas ainda há uma paleta de pasta de trabalho com 56 cores. / strong>

Então, quando você enfrentar esses problemas ou for lido para lidar com isso, confira este artigo:

por 08.12.2012 / 15:17
0

Fonte

Sub ColorPieCharts()    
    Dim iX As Integer
    Dim iY As Integer
    Dim bHasDataLabels As Boolean
    Dim bShowSeriesName As Boolean
    Dim bShowCategoryName As Boolean
    Dim bShowValue As Boolean
    Dim bShowPercentage As Boolean
    Dim bLegendKey As Boolean
    Dim bHasLeaderLines As Boolean

    SetWorkbookColors

    For iX = 1 To ActiveSheet.ChartObjects.Count
        ActiveSheet.ChartObjects(iX).Select

        'Determine DataLabel status
        On Error Resume Next
        bHasDataLabels = ActiveChart.SeriesCollection(1).HasDataLabels
        'bLegendKey = ActiveChart.SeriesCollection(1).LegendKey
        bHasLeaderLines = ActiveChart.SeriesCollection(1).HasLeaderLines
        bShowSeriesName = ActiveChart.SeriesCollection(1).DataLabels.ShowSeriesName
        bShowCategoryName = ActiveChart.SeriesCollection(1).DataLabels.ShowCategoryName
        bShowValue = ActiveChart.SeriesCollection(1).DataLabels.ShowValue
        bShowPercentage = ActiveChart.SeriesCollection(1).DataLabels.ShowPercentage
        On Error GoTo 0

        ActiveChart.ApplyDataLabels AutoText:=True, _
            HasLeaderLines:=True, ShowSeriesName:=False, ShowCategoryName:=True, _
            ShowValue:=False, ShowPercentage:=False, ShowBubbleSize:=False

        For iY = 1 To ActiveChart.SeriesCollection(1).Points.Count
            Select Case ActiveChart.SeriesCollection(1).Points(iY).DataLabel.Text
            Case Is = "a"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 1
            Case Is = "b"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 2
            Case Is = "c"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 3
            Case Is = "d"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 4
            Case Is = "e"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 5
            Case Is = "f"
                ActiveChart.SeriesCollection(1).Points(iY).Interior.ColorIndex = 6
            Case Else
                'Other groups get no special color
            End Select
        Next
    Next

End_Sub:
    If bHasDataLabels Then
        ActiveChart.ApplyDataLabels AutoText:=True, _
            HasLeaderLines:=True, ShowSeriesName:=bShowSeriesName, ShowCategoryName:=bShowCategoryName, _
            ShowValue:=bShowValue, ShowPercentage:=bShowPercentage, ShowBubbleSize:=False
    Else
        ActiveChart.SeriesCollection(1).HasDataLabels = False
    End If

End Sub

Sub SetWorkbookColors()
    ActiveWorkbook.Colors(1) = RGB(0, 0, 0)
    ActiveWorkbook.Colors(2) = RGB(0, 0, 100)
    ActiveWorkbook.Colors(3) = RGB(0, 100, 0)
    ActiveWorkbook.Colors(4) = RGB(0, 100, 100)
    ActiveWorkbook.Colors(5) = RGB(100, 0, 0)
    ActiveWorkbook.Colors(6) = RGB(100, 0, 100)
End Sub

Sub ResetWorkbookColors()
    ActiveWorkbook.ResetColors
End Sub
    
por 07.12.2012 / 23:14