none
Selecionar período em um gráfico de período de tempo muito longo RRS feed

  • Pergunta

  • Eu tenho uma planilha com dados diários desde 2009 sobre PA e glicemia e fiz um gráfico para analisar sua evolução.

    Eu gostaria de alterar o período de apresentação do gráfico sem ter que selecionar utilizando "Selecionar dados" tanto o período para o eixo de datas como as linhas de dados, apenas informando a data de início e a data fim do período.

    Tentei montar uma expressão, com a região da tabela desejada, construindo com "CONCATENAR" mas não funcionou, como por exemplo: ='guia'!$L$66:$L$99 em uma célula e, na seleção de dados do gráfico, apontar para a célula que havia a expressão com a região desejada. Esta região muda conforme informação das datas desejadas de início e fim do período analisado.

    Obrigado


    Rui Martins

    quinta-feira, 1 de maio de 2014 16:35

Respostas

  • Olá Rui!

    Criei uma solução para sua necessidade utilizando um pequeno comando em VBA. Vou explicar passo a passo, caso não esteja habituado a utilizado macros.

    Primeiramente é necessário mexer na planilha do Excel onde estão os dados. Observe como eu fiz no modelo abaixo:

    1º) Monte sua tabela de dados e adicione uma coluna de apoio, que aqui chamei de linha, coloque a fórmula =lin(b10) e arraste para toda a coluna. Este valor servirá de apoio para identificar em qual linha estarão as datas digitadas.

    2º) Monte os campos para digitar data inicial e data final e um campo para montar como texto o intervalo desejado, neste caso fiz na célula C6, que contém a fórmula:

    =CONCATENAR(CONCATENAR("B";PROCV(C3;B:E;4;FALSO));":";CONCATENAR("D";PROCV(C4;B:E;4;FALSO)))

    Essa fórmula irá montar o intervalo da tabela desejado no gráfico conforme datas digitadas. Caso você altere as posições dos campos na sua planilha é preciso corrigir na fórmula os intervalos e células.

    3º) Aperte Alt+F11 e surgirá a tela do VBA. Adicione um módulo e copie e cole o código abaixo:

    Obs: Ajuste o nome "Gráfico 6" para o nome do gráfico que você montou. Provavelmente, se você começar a montar a partir de um novo arquivo, o nome do seu gráfico será "Gráfico 1". Para saber o nome do gráfico basta clicar no gráfico e observar o nome que aparece do lado esquerdo do campo onde inserimos funções. Se você utilizar uma posição diferente para o campo onde vai o nome do intervalo, substitua "C6" pela célula que você usou.

    Sub Atualizar_Gráfico()
    
        Dim intervalo As String
        intervalo = ActiveSheet.Range("C6")
        ActiveSheet.ChartObjects("Gráfico 6").Activate
        ActiveChart.SetSourceData Source:=Range("B9:D9," & intervalo)
        
    End Sub


    4º) Agora basta você incluir qualquer objeto (pode ser imagem, caixa de texto, um quadrado) e clicar com o botão direito do mouse na opção "Atribuir macro" e selecione a macro "Atualizar_Gráfico".

    Pronto, desta forma basta digitar a data inicial e final e apertar no botão ou objeto que você atribui a macro, que o gráfico irá se atualizar conforme intervalo desejado.

    Só um detalhe, você deve salvar a planilha como "Pasta de trabalho Habilitada para Macro do Excel", caso contrário você perderá a macro e não funcionará quando abrir o arquivo da próxima vez.

    Qualquer dúvida responde aqui e se foi útil não esqueça de marcar como útil.

    Abraços!


    segunda-feira, 5 de maio de 2014 13:03
  • Valeu Rafael, muito obrigado.

    Vou tentar, ainda bem que conheço um pouco de programação VBA e tenho bastante experiência em Excel, pois já fui programador há muito tempo. Estou meio enferrujado, mas isso é bom p tirar a ferrugem hehehe.

    Depois te respondo se deu certo. 

    Obrigado.


    Rui Martins

    terça-feira, 6 de maio de 2014 01:04
  • Oi Rafael,

    Recebi essa outra alternativa para fazer a mesma coisa, mas usar código.

    Estou compartilhando c vc p vc acrescentar no seu repertório:
    Veja uma alternativa sem VBA: https://onedrive.live.com/redir?resid=FB206A2D510E0661!20194&authkey=!AHvtLwRdMWtSdWg&ithint=file%2c.xlsx


    Rui Martins

    quinta-feira, 8 de maio de 2014 18:01

Todas as Respostas

  • Olá Rui!

    Criei uma solução para sua necessidade utilizando um pequeno comando em VBA. Vou explicar passo a passo, caso não esteja habituado a utilizado macros.

    Primeiramente é necessário mexer na planilha do Excel onde estão os dados. Observe como eu fiz no modelo abaixo:

    1º) Monte sua tabela de dados e adicione uma coluna de apoio, que aqui chamei de linha, coloque a fórmula =lin(b10) e arraste para toda a coluna. Este valor servirá de apoio para identificar em qual linha estarão as datas digitadas.

    2º) Monte os campos para digitar data inicial e data final e um campo para montar como texto o intervalo desejado, neste caso fiz na célula C6, que contém a fórmula:

    =CONCATENAR(CONCATENAR("B";PROCV(C3;B:E;4;FALSO));":";CONCATENAR("D";PROCV(C4;B:E;4;FALSO)))

    Essa fórmula irá montar o intervalo da tabela desejado no gráfico conforme datas digitadas. Caso você altere as posições dos campos na sua planilha é preciso corrigir na fórmula os intervalos e células.

    3º) Aperte Alt+F11 e surgirá a tela do VBA. Adicione um módulo e copie e cole o código abaixo:

    Obs: Ajuste o nome "Gráfico 6" para o nome do gráfico que você montou. Provavelmente, se você começar a montar a partir de um novo arquivo, o nome do seu gráfico será "Gráfico 1". Para saber o nome do gráfico basta clicar no gráfico e observar o nome que aparece do lado esquerdo do campo onde inserimos funções. Se você utilizar uma posição diferente para o campo onde vai o nome do intervalo, substitua "C6" pela célula que você usou.

    Sub Atualizar_Gráfico()
    
        Dim intervalo As String
        intervalo = ActiveSheet.Range("C6")
        ActiveSheet.ChartObjects("Gráfico 6").Activate
        ActiveChart.SetSourceData Source:=Range("B9:D9," & intervalo)
        
    End Sub


    4º) Agora basta você incluir qualquer objeto (pode ser imagem, caixa de texto, um quadrado) e clicar com o botão direito do mouse na opção "Atribuir macro" e selecione a macro "Atualizar_Gráfico".

    Pronto, desta forma basta digitar a data inicial e final e apertar no botão ou objeto que você atribui a macro, que o gráfico irá se atualizar conforme intervalo desejado.

    Só um detalhe, você deve salvar a planilha como "Pasta de trabalho Habilitada para Macro do Excel", caso contrário você perderá a macro e não funcionará quando abrir o arquivo da próxima vez.

    Qualquer dúvida responde aqui e se foi útil não esqueça de marcar como útil.

    Abraços!


    segunda-feira, 5 de maio de 2014 13:03
  • Veja uma alternativa sem VBA: https://onedrive.live.com/redir?resid=FB206A2D510E0661!20194&authkey=!AHvtLwRdMWtSdWg&ithint=file%2c.xlsx

    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 6 de maio de 2014 00:18
  • Valeu Rafael, muito obrigado.

    Vou tentar, ainda bem que conheço um pouco de programação VBA e tenho bastante experiência em Excel, pois já fui programador há muito tempo. Estou meio enferrujado, mas isso é bom p tirar a ferrugem hehehe.

    Depois te respondo se deu certo. 

    Obrigado.


    Rui Martins

    terça-feira, 6 de maio de 2014 01:04
  • Oi Felipe!

    Linda essa sua solução.

    Já havia recebido uma outra opção tb interessante, mas essa sua arrasou. Já testei, funcionou e vou implementá-la.

    Inclusive compartilhei c o Rafael que me enviou uma outra solução que tb funciona, mas depende mais de código.Valeu. Obrigadíssimo.


    Rui Martins

    quinta-feira, 8 de maio de 2014 18:00
  • Oi Rafael,

    Recebi essa outra alternativa para fazer a mesma coisa, mas usar código.

    Estou compartilhando c vc p vc acrescentar no seu repertório:
    Veja uma alternativa sem VBA: https://onedrive.live.com/redir?resid=FB206A2D510E0661!20194&authkey=!AHvtLwRdMWtSdWg&ithint=file%2c.xlsx


    Rui Martins

    quinta-feira, 8 de maio de 2014 18:01
  • Bom dia Rui,

    Como consigo fazer isso? Baixei o arquivo mão não consigo entender o que vc fez. Agradeço pela atenção

    quinta-feira, 2 de fevereiro de 2017 14:56
  • Poderia disponibilizar novamente?
    segunda-feira, 13 de maio de 2019 20:01