locked
Plotar gráfico com séries dinâmicas RRS feed

  • Pergunta

  • Tenho um gráfico do tipo linhas que é formado através de dados de uma tabela contida na mesma planilha.

    Esta tabela é criada com dados vindos externamente. Ou seja, via código C# eu preencho a tabela contida na planilha. Essa tabela tem uma célula definido de início.

     

    O problema é que esta tabela tem tanto séries quanto valores Y e X variáveis.

     

    Por exemplo:

    ...............Produto A... Produto B...Produto C

    Jan/11.........10...............11.............17

    Fev/11.........9................85.............25

    Mar/11........15...............10..............6

     

    A tabela pode crescer tanto em meses quanto em produtos. No gráfico, cada produto é uma linha diferente. No eixo horizontal ficam os meses e no vertical os valores para cada mês.

     

    Como eu poderia definir isso no gráfico de linhas?? Estou usando o Excel 2007.

     

    Desde já agradeço.

    quarta-feira, 9 de fevereiro de 2011 13:34

Todas as Respostas

  • Leonardo, voce terá que trabalhar com intervalo nomeado.

    Selecione um range e nomeio-o.  Crie seu grafico baseado neste intervalo nomeado.

    Depois, toda vez que for mostrar o grafico ( ou ao abrir a planilha) re-mapeie o seu intervalo nomeado utilizando VBA.

     


    Caio Vitullo
    quarta-feira, 9 de fevereiro de 2011 16:22
  • Você deve trabalhar com intervalo nomeado como disse o caio, no entanto utilize a seguinte fórmula para que ele seja atualizado dinamicamente.

     

    =DESLOC(plan1!A1;0;0;cont.valores(A:A);cont.valores(1:1)

     

    Em refere-se a quando você for criar o nome, coloque esta fórmula.

    Para mais informações consulte.

    http://www.officevb.com/2010/12/nesta-epoca-de-final-de-anos.html

    Teste ai e qqer coisa fale.

    Att


    Bruno Silva Leite
    officevb.com
    quarta-feira, 9 de fevereiro de 2011 22:12
  • Bruno,

    Para Linhas e Colunas Dinâmicas essa solução não atende.

    Me refiro especificamente a mudanças de nomes nos rótulos de linha e coluna.

    Estou pesquisando o assunto tb mas tá feia a coisa...

    Abs,

     

     

     

    quinta-feira, 10 de fevereiro de 2011 05:14
  • Bruno, nesse link que me passou, segui os passos lá indicados mas não quer dar muito certo..

     

    Quando vou inserir o valor da série no gráfico dá a mensagem: "A fórmula nesta planilha contém uma ou mais referências inválidas. Verifique se suas formulas contém caminhos, pastas de trabalho, nomes de intervalo e referências de células válidos."

     

    Fiz idêntico ao que indica no link. O que poderia ser isso??

    terça-feira, 22 de fevereiro de 2011 13:03
  • Um fera no excel postou a solução neste link: http://www.orkut.com.br/Main#CommMsgs?cmm=96432&tid=5570946064678551165 Não deu pra entender se o caso é exatamente o mesmo mas vale a pena olhar o post. Se vc não conseguir, posta a planilha que agora sei como se resolve. Abs,
    terça-feira, 22 de fevereiro de 2011 14:12
  • Mandrix, muito obrigado mas com macro eu já havia conseguido resolver este problema com um código aqui que tinha feito.

     

    O problema é que, onde este arquivo irá rodar, as macros não poderão ser habilitadas devido a segurança..

    terça-feira, 22 de fevereiro de 2011 14:21
  • Estamos no mesmo mato sem cachorro. Meus clientes não permitem macro e, confesso, não encontrei ainda outra alternativa. A luta continua! Abs,
    terça-feira, 22 de fevereiro de 2011 16:06
  • Não vejo como criar dinamicamente séries de gráficos sem usar macros. Se eu fosse você, faria isto no código C# ao povoar a Planilha com os dados.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    terça-feira, 22 de fevereiro de 2011 16:24
  • Concordo com o Benzadeus.

    me diga uma coisa: O quão dinamico é esse processo?

    voce pode criar varios graficos, cada um com uma configuração diferente e criar sua regra de negocio no link que leva ao grafico correto.

    Quanto as macros estarem desabilitadas,

    existem maneiras de agragar segurança ao processo.

    da uma olhada na parte de Certificado para as Macros, ou na possibilidade de habilitar as macros apenas para uma determinada pasta.


    Caio Vitullo
    terça-feira, 22 de fevereiro de 2011 16:49
  • Leonardo tente assim na definição da série de dados

     

    Caso tenha espaçoes no nome da pasta de trabalho use o apóstrofe

    ='Nome da sua pasta de trabalho.xlsx'!NomeDoIntervaloNomeado

     

    Caso não tenha

    =NomeDaPasta!NomeDoIntervaloNomeado



    É possível de ser feito sim ,utilizo esta implementação em diversas aplicações que desenvolvi. A variação das séries é feita através de uma combinação de DESLOC + ÍNDICE + CORRESP como demonstrei no exemplo que postei acima.

    Teste ai e qqer coisa fale.


    Bruno Silva Leite
    officevb.com
    quarta-feira, 23 de fevereiro de 2011 00:39
  • Bruno, pelo que entendi, sua fórmula adiciona dinamicamente dados a uma série.

    O que entendi pela pergunta original é que deseja-se adicionar séries dinamicamente.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br
    quarta-feira, 23 de fevereiro de 2011 01:16
  • Exatamente Benzadeus.

    quarta-feira, 23 de fevereiro de 2011 02:06