Ir para o conteúdo principal

Como fazer um gráfico de cores baseado na cor das células no Excel?

Autor: Xiao Yang Última modificação: 2020-08-20

Normalmente, quando você cria um gráfico, a cor da barra da coluna é o padrão. Se você precisar formatar a cor preenchida em cada barra com base nas cores das células, como mostrado a seguir, como você resolveria no Excel?

Pinte o gráfico com uma ou várias séries de dados com base na cor da célula com códigos VBA

Pinte o gráfico com uma ou várias séries de dados com base na cor da célula com um recurso incrível


Pinte o gráfico com uma ou várias séries de dados com base na cor da célula com códigos VBA

Pinte o gráfico com uma série de dados com base na cor da célula

Com o seguinte código VBA, você pode alterar rapidamente a cor do gráfico que contém uma série de dados com base na cor original dos valores da célula, faça o seguinte:

1. Primeiro, crie um gráfico de barras ou colunas como mostrado a seguir (selecione os dados e clique em inserção > Inserir coluna ou gráfico de barras):

2. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

3. Clique inserção > Móduloe cole o código a seguir na janela do módulo.

Código VBA: barras do gráfico de cores com uma série de dados com base na cor da célula:

Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, xRows As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart.SeriesCollection(1)
        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
        xRows = xRg.Rows.Count
        Set xRg = xRg(1)
        For I = 1 To xRows
            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
        Next
    End With
End Sub

Note: No código acima, Gráfico 1 é o nome do gráfico que você deseja usar, altere-o para o seu próprio.

4. Depois de colar o código acima, pressione F5 chave para executar este código, e a cor das barras do gráfico foram alteradas com base na cor original da célula, consulte a captura de tela:


Pinte o gráfico com várias séries de dados com base na cor da célula

Se seu gráfico com várias séries de dados, aplique o seguinte código VBA:

1. Crie o gráfico de barras ou colunas que contenha várias séries de dados, conforme mostrado a seguir:

2. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

3. Clique inserção > Móduloe cole o código a seguir na janela Módulo.

Código VBA: barras do gráfico de cores com várias séries de dados com base na cor da célula:

Sub CellColorsToChart()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, J As Long
    Dim xRowsOrCols As Long, xSCount As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    xSCount = xChart.SeriesCollection.Count
    For I = 1 To xSCount
        J = 1
        With xChart.SeriesCollection(I)
            Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
            If xSCount > 4 Then
                xRowsOrCols = xRg.Columns.Count
            Else
                xRowsOrCols = xRg.Rows.Count
            End If
            For Each xCell In xRg
                .Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                .Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                J = J + 1
            Next
        End With
    Next
End Sub

4. Então aperte F5 chave para executar este código, as barras do gráfico são preenchidas com a cor original das células de uma vez, veja a captura de tela:

Observações:

1. No código acima, Gráfico 1 é o nome do gráfico que você deseja usar, altere-o para o seu próprio.

2. Este código também pode ser aplicado a um gráfico de linha.


Pinte o gráfico com uma ou várias séries de dados com base na cor da célula com um recurso incrível

Ao usar os códigos acima, as cores do gráfico nem sempre serão combinadas com a cor da célula, para resolver este problema, aqui, vou apresentar uma ferramenta útil - Alterar a cor do gráfico de acordo com a cor da célula of Kutools for Excel, com esse recurso útil, você pode colorir o gráfico com base na cor da célula de forma rápida e fácil.

Observação: Para aplicar isso Alterar a cor do gráfico de acordo com a cor da célula, em primeiro lugar, você deve baixar o Kutools for Excele, em seguida, aplique o recurso de forma rápida e fácil.

Depois de instalar Kutools for Excel, por favor, faça o seguinte:

1. Primeiro, insira o gráfico que deseja usar, selecione o gráfico e clique em Kutools > charts > Ferramentas de gráfico > Alterar a cor do gráfico de acordo com a cor da célula, veja a captura de tela:

2. E então, uma caixa de prompt é exibida, clique em OK botão.

3. Agora, o gráfico que você selecionou foi colorido com base nas cores das células, conforme as capturas de tela mostradas abaixo:

Pinte o gráfico com uma série de dados com base na cor da célula

Pinte o gráfico com várias séries de dados com base na cor da célula

Baixe e teste grátis Kutools para Excel agora!


Mais artigos de gráficos relativos:

  • Crie um gráfico de barras sobrepondo outro gráfico de barras no Excel
  • Quando criamos uma barra agrupada ou gráfico de coluna com duas séries de dados, as duas barras da série de dados são mostradas lado a lado. Mas, às vezes, precisamos usar a sobreposição ou o gráfico de barras sobrepostas para comparar as duas séries de dados com mais clareza. Neste artigo, falarei sobre como criar um gráfico de barras sobreposto no Excel.
  • Copiar um formato de gráfico para outros no Excel
  • Supondo que haja vários tipos diferentes de gráficos em sua planilha, você formatou um gráfico de acordo com sua necessidade e agora deseja aplicar essa formatação de gráfico a outros gráficos. Claro, você pode formatar outros manualmente um por um, mas isso vai perder muito tempo. Existe alguma maneira rápida ou prática de copiar um formato de gráfico para outros no Excel?
  • Destacar pontos de dados máximos e mínimos em um gráfico
  • Se você tiver um gráfico de colunas no qual deseja destacar os pontos de dados maiores ou menores com cores diferentes para destacá-los como mostrado a seguir. Como você poderia identificar os valores mais altos e os menores e então destacar os pontos de dados no gráfico rapidamente?
  • Crie um gráfico de etapas no Excel
  • Um gráfico de etapas é usado para mostrar as mudanças ocorridas em intervalos irregulares, é uma versão estendida de um gráfico de linha. Porém, não há uma maneira direta de criá-lo no Excel. Neste artigo, vou falar sobre como criar um gráfico passo a passo na planilha do Excel.
  • Criar gráfico de barras de progresso no Excel
  • No Excel, o gráfico de barras de progresso pode ajudá-lo a monitorar o progresso em direção a uma meta, conforme mostrado a seguir. Mas, como você poderia criar um gráfico de barras de progresso na planilha do Excel?

Melhores ferramentas de produtividade de escritório

🤖 Assistente de IA do Kutools: Revolucionar a análise de dados com base em: Execução Inteligente   |  Gerar Código  |  Crie fórmulas personalizadas  |  Analise dados e gere gráficos  |  Invocar funções do Kutools...
Recursos mais comuns: Encontre, destaque ou identifique duplicatas   |  Excluir linhas em branco   |  Combine colunas ou células sem perder dados   |   Rodada sem Fórmula ...
Super pesquisa: VLookup de múltiplos critérios    VLookup de múltiplos valores  |   VLookup em várias planilhas   |   Pesquisa Difusa ....
Lista suspensa avançada: Crie rapidamente uma lista suspensa   |  Lista suspensa de dependentes   |  Lista suspensa de seleção múltipla ....
Gerenciador de colunas: Adicione um número específico de colunas  |  Mover colunas  |  Alternar status de visibilidade de colunas ocultas  |  Compare intervalos e colunas ...
Recursos em destaque: Foco da Grade   |  Vista de Design   |   Grande Barra de Fórmula    Gerenciador de pastas de trabalho e planilhas   |  Biblioteca (Auto texto)   |  Data Picker   |  Combinar planilhas   |  Criptografar/Descriptografar Células    Enviar e-mails por lista   |  Super Filtro   |   Filtro Especial (filtro negrito/itálico/tachado...) ...
15 principais conjuntos de ferramentas12 Texto Ferramentas (Adicionar texto, Remover Personagens, ...)   |   50+ de cores Tipos (Gráfico de Gantt, ...)   |   Mais de 40 práticos Fórmulas (Calcule a idade com base no aniversário, ...)   |   19 Inclusão Ferramentas (Insira o código QR, Inserir imagem do caminho, ...)   |   12 Conversão Ferramentas (Números para Palavras, Conversão de moedas, ...)   |   7 Unir e dividir Ferramentas (Combinar linhas avançadas, Dividir células, ...)   |   ... e mais

Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo.  Clique aqui para obter o recurso que você mais precisa...

Descrição


Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
Comments (8)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
For more than 1 Chart:



Sub CellColorsToChart()'Updateby Extendoffice
Dim xChart As Chart
Dim I As Long, J As Long, Y As Long
Dim xRowsOrCols As Long, xSCount As Long Dim xRg As Range, xCell As Range
On Error Resume Next

For Y = 1 To 100Set xChart = ActiveSheet.ChartObjects("Chart "&Y).Chart If xChart Is Nothing Then Exit Sub
xSCount = xChart.SeriesCollection.Count
For I = 1 To xSCount
J = 1
With xChart.SeriesCollection(I)
Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
If xSCount > 4 Then
xRowsOrCols = xRg.Columns.Count
Else
xRowsOrCols = xRg.Rows.Count
End If
For Each xCell In xRg
.Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
.Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
J = J + 1
Next
End WithNext
Next
End Sub

This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
This comment was minimized by the moderator on the site
It is ok. But... why simply not going to "Format Legend Entry" option in every data series in the chart, and go "Fill" and make it the color you want. I mean... all is ok, but a VBA code for this simple task is kinda overkill. But thanks. Appreciate you share it.
This comment was minimized by the moderator on the site
i cant make it work :( is this supposed to work on a stacked bar chart? Thanks
This comment was minimized by the moderator on the site
This was an awesome start, but the colors of the chart and the cells don't always match. Any idea why?
This comment was minimized by the moderator on the site
Thank you for the codes! How would you add a conditional format when the format is already established?
This comment was minimized by the moderator on the site
Thank you for these codes! This was exactly what I've been looking for with one detail not quite fitting. When I ran the code, the bar graphs colored in correctly but not legend which stayed unchanged. Is there a variation to the code that would include the legend? Or is there a way to match the Legend to the changes in the chart without a code?
This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations