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

Objetivo: Como criar um gráfico Excel com eixo Y com altura dinâmica VBA.
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.
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:
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:
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.
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.
As segmentações foram então ajustadas em torno do gráfico dinâmico, ficando da seguinte forma:
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.
Abraço
Marcos Rieper
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90










