Blog

Postado em em 16 de outubro de 2021

Mudar Cor do Dashboard com VBA – Mude com 1 Clique!

Você sabia que é possível mudar cor do dashboard com VBA utilizando apenas 1 clique? Hoje eu vou te ensinar o passo a passo!

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Você sabia que tem como mudar cor do dashboard no VBA? Já imaginou você criando o seu dashboard com mudança de cor automática no VBA?

Esse é um recurso que vai aumentar o nível dos seus dashboards em Excel, pois você pode alterar para que cada seleção de informação altere as cores do seu dashboard.

Dessa forma vai ter um dashboard mais dinâmico e podendo alterar as cores de acordo com a sua seleção para ficar no padrão de cores de um produto, empresa, marca…

Vamos logo aprender como fazer essa mudança de cor do dashboard?

Primeiramente precisamos definir uma macro, que vai ser responsável por fazer as mudanças de cor tanto nas células, quanto no gráfico.

Sub mudarCor()

If Sheets("Relatório").Range("B1").Value = "TIM" Then

    Sheets("Relatório").Range("A1").Interior.ColorIndex = 5
   Sheets("Relatório").Range("A4:A6").Interior.ColorIndex = 5
   Sheets("Relatório").Range("A9:A11").Interior.ColorIndex = 5

    Sheets("Relatório").ChartObjects("Gráfico 1").Activate
   ActiveChart.ChartColor = 3
 

ElseIf Sheets("Relatório").Range("B1").Value = "Claro" Then

    Sheets("Relatório").Range("A1").Interior.ColorIndex = 46
   Sheets("Relatório").Range("A4:A6").Interior.ColorIndex = 46
   Sheets("Relatório").Range("A9:A11").Interior.ColorIndex = 46

    Sheets("Relatório").ChartObjects("Gráfico 1").Activate
   ActiveChart.ChartColor = 4
  

ElseIf Sheets("Relatório").Range("B1").Value = "Oi" Then

   Sheets("Relatório").Range("A1").Interior.ColorIndex = 44
   Sheets("Relatório").Range("A4:A6").Interior.ColorIndex = 44
    Sheets("Relatório").Range("A9:A11").Interior.ColorIndex = 44

   Sheets("Relatório").ChartObjects("Gráfico 1").Activate
    ActiveChart.ChartColor = 6

End If

Sheets("Relatório").Range("B1").Activate

End Sub

Comentários da macro mudarCor():

  • Vamos utilizar de uma estrutura If para fazer uma comparação logo no começo, vendo o que está escrito na célula B1.
  • Caso o valor da célula B1 seja igual a “TIM”, iremos:
    • pintar o interior da célula A1 com a cor de índice 5
    • pintar o interior do intervalo de A4 a A6 com a cor de índice 5
    • pintar o interior do intervalo de A9 a A11 com a cor de índice 5
    • ativar o gráfico de nome “Gráfico 1”
    • mudar a cor do gráfico ativo para a cor de índice 3

Resultado caso o valor da célula B1 seja “TIM”:

Mudança de cor automática no VBA
Mudança de cor automática no VBA
  • Caso o valor da célula B1 seja igual a “Claro”, iremos:
    • pintar o interior da célula A1 com a cor de índice 46
    • pintar o interior do intervalo de A4 a A6 com a cor de índice 46
    • pintar o interior do intervalo de A9 a A11 com a cor de índice 46
    • ativar o gráfico de nome “Gráfico 1”
    • mudar a cor do gráfico ativo para a cor de índice 4

Resultado caso o valor da célula B1 seja “Claro”:

Como alterar cor de gráficos com VBA
Como alterar cor de gráficos com VBA
  • Caso o valor da célula B1 seja igual a “Oi”, iremos:
    • pintar o interior da célula A1 com a cor de índice 44
    • pintar o interior do intervalo de A4 a A6 com a cor de índice 44
    • pintar o interior do intervalo de A9 a A11 com a cor de índice 44
    • ativar o gráfico de nome “Gráfico 1”
    • mudar a cor do gráfico ativo para a cor de índice 6

Resultado caso o valor da célula B1 seja “Oi”:

Oi
  • Após ler qual a informação da célula B1 e mudar a cor do dashboard, vamos ativar a célula B1.
  • Se encerra a nossa macro mudarCor

Em segundo lugar vamos ter que definir/usar um evento de alteração da aba “Relatório”.

Um evento no VBA é quando algum acontecimento é usado como gatilho para disparar uma ação. Um evento change no VBA diz respeito a mudança de alguma célula na aba em questão.

O gatilho, nesse caso será a mudança em alguma célula da aba “Relatório”. Mas não será qualquer célula, será a célula “B1”, que contém as marcas das operadoras, porque elas que vão configurar as cores do nosso dashboard.

A ação será o funcionamento do nosso código programado anteriormente: a sub mudarCor.

Observe abaixo que o evento será um tipo de sub, mas não ficará dentro de um módulo:

1
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row = 1 And Target.Column = 2 Then
   Call mudarCor
End If

End Sub

Comentários a respeito do evento de mudança na aba (Worksheet_Change):

  • Configurar-se-á a sub de change (mudança) na aba (Worksheet) “Relatório”, de forma que a célula que foi mais recentemente alterada será considerada o Target (alvo, em português)
  • Se o Target estiver na 1ª linha, e na 2ª coluna, ou seja, for a célula B1, então o código mudarCor vai ser chamado (call, em inglês) a funcionar
  • Caso não seja a célula B1 a ser alterada, nada será feito
  • E se encerra o evento

Conclusão de Mudar Cor do Dashboard com VBA

Nessa aula você aprendeu como alterar cor de células com VBA para alterar o fundo das células e claro, como alterar cor de gráficos com VBA.

Você também lidou com:

  • Estrutura If
  • Eventos no VBA
  • Evento Change

Já imaginou ter os seus gráficos com padrão de cores alterado de acordo com alguma opção escolhida pelo usuário da sua planilha? Irado, não é mesmo? Então se perdeu algum detalhe, volte o vídeo e releia os passos descritos aqui!

Até o próximo post! Fique ligado no nosso canal do Youtube para mais conteúdo de Excel, VBA e Power BI! Um abraço!

Hashtag Treinamentos

Para acessar outras publicações de VBA, clique aqui!


Quer aprender mais sobre VBA com um Minicurso Gratuito?


Quer sair do zero no Power BI e virar uma referência na sua empresa? Inscreva-se agora mesmo no Power BI Impressionador