Gráfico Excel com eixo Y com altura dinâmica VBA

Objetivo: Como criar um gráfico Excel com eixo Y com altura dinâmica VBA.

Eixo y com tamanho dinâmico dashboard 1

Este artigo tem como objetivo demonstrar como alterar os valores máximo e mínimo de um gráfico Excel de modo que o gráfico seja sempre apresentado da melhor forma.

No exemplo criado temos uma planilha simples com as vendas realizadas por dia por cada vendedor durante o ano de 2014.

Eixo y com tamanho dinâmico dashboard 2

Note que para as datas foram inclusos também os campos Dia, Mês e Ano, que utilizam as respectivas funções com os mesmos nome e utilizadas somente passando a data, o seu retorno são os campos homônimos aos seus nomes, e a sintaxe é a seguinte:

Para um valor de 02/01/2014 na célula A14:

  • DIA(A14)      -> 2
  • MÊS(A14)     -> 1
  • ANO(A14)    -> 2014

Estes campos são importantes para a criação da tabela dinâmica.

Na planilha Gráfico, foi criada uma tabela dinâmica com as seguintes configurações:

Eixo y com tamanho dinâmico dashboard 3

Caso não esteja familiarizado com o uso de tabelas dinâmicas sugiro que veja o artigo http://guiadoexcel.com.br/tabelas-dinamicas, pois o uso desta ferramenta abre várias possibilidades no Excel.

A tabela dinâmica criada fica no seguinte formato:

Eixo y com tamanho dinâmico dashboard 4

Clique sobre a mesma e na aba Inserir e selecione a opção gráfico de colunas 2D, o Excel irá criar um gráfico dinâmico com os dados criados.

Eixo y com tamanho dinâmico dashboard 5

Após a criação do gráfico insira as segmentações de dados clicando sobre Dia, depois Mês, Ano e Vendedor, veja neste artigo como criar segmentações de dados: http://guiadoexcel.com.br/segmentacao-de-dados-com-tabela-dinamica-excel-bi-excel-dashboards-excel.

Eixo y com tamanho dinâmico dashboard 6

As segmentações foram então ajustadas em torno do gráfico dinâmico, ficando da seguinte forma:

Eixo y com tamanho dinâmico dashboard 1

Clicando então na guia Desenvolvedor e no botão Visual Basic foi acessada a ferramenta de desenvolvimento VBA do Excel, selecionado o objeto Plan2 (Gráfico) e incluso o seguinte código fonte:

'Método disparado ativação da planilha, quando ativa realiza a atualização do gráfico
Private Sub Worksheet_Activate()
    lsAtualizarGrafico
End Sub

'Função que calcula a altura do eixo Y
Private Sub lsAtualizarGrafico()
    'Seleciona o gráfico
    ActiveSheet.ChartObjects("Gráfico 1").Activate
    'Seleciona o eixo Y do gráfico
    ActiveChart.Axes(xlValue).Select
    'O valor mínimo da escala do eixo Y recebe o valor mínimo da tabela dinâmica - 5%
    ActiveChart.Axes(xlValue).MinimumScale = WorksheetFunction.Small(Sheets("Gráfico").Range("b35:z50"), 1) * 0.95
    'O valor máximo da escala do eixo Y recebe o valor máximo da tabela dinâmica + 2%
    ActiveChart.Axes(xlValue).MaximumScale = WorksheetFunction.Large(Sheets("Gráfico").Range("b35:z50"), 1) * 1.02
End Sub
'Método chamado em alterações realizadas na planilha
Private Sub Worksheet_Change(ByVal Target As Range)

lsAtualizarGrafico
End Sub

O código fonte incluso está devidamente comentado informando o que cada linha está realizando, mas efetivamente para desenvolver é necessário conhecimento em VBA.

Baixe o arquivo e veja o resultado final do projeto.

Download-button

Abraço

Marcos Rieper


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel