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

Usar fórmulas/funções Excel no VBA
Usar fórmulas/funções Excel no VBA
5 de janeiro de 2015
Como achar um valor aproximado Excel - Procv
Como achar um valor aproximado Excel – Procv
17 de janeiro de 2015

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

Eixo y com tamanho dinâmico dashboard 1Este 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


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/

3 Comentários

  1. Manolo disse:

    Muito bom o gráfico

  2. josiel disse:

    Muito bom o gráfico de tabela dinâmica. Como faço para desenvolver e ter o mesmo resultado no VBA onde será selecionado por cada mês, dias e os valores de cada vendedor?

    • Marcos Rieper disse:

      Olá Josiel,

      É a mesma situação, baixe o exemplo e veja no código os intervalos aonde estão os valores para realizar este ajuste.

      At.
      Marcos Rieper

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.