Tabela dinâmica com filtros pré-definidos

Anônima
2011-12-08T17:37:35+00:00

Como faço para que uma tabela dinamica (excel 2010) utilize filtros pré-definidos para executar seus relatórios, via macro. Os filtros poderiam estar em uma planilha ou arquivo diferentes.

Quero que uma macro aplique diferentes filtros numa mesma base de dados e gere automaticamente novas tabelas respostas para cada tipo de filtro aplicado. Minha dificuldade se encontra em como "dizer" para a tabela dinâmica que ela deve usar os filtros que estão em um arquivo ou planilha já salvo previamente para gerar seu relatório.

Aguardo retorno

obrigado

Microsoft 365 e Office | Excel | Para uso doméstico | Windows

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2011-12-12T19:25:48+00:00

Estive pensando, há uma alternativa mais simples ao invés de se usar tabelas dinâmicas. Por que não experimente usar um Filtro Avançado? Você sabe usar essa ferramenta?

Você poderia pré-definir cada uma das "pesquisas salvas" em cada guia de Planilha, e então com poucas linhas de código o filtro avançado seria aplicado corretamente.

Veja um exemplo que fiz para este caso no link: http://www.megaupload.com/?d=A1VEUIY1

Esta resposta foi útil?

0 comentários Sem comentários

10 respostas adicionais

Classificar por: Mais útil
  1. Anônima
    2011-12-12T16:31:37+00:00

    Muito obrigado pela atenção e por tentar me ajudar, mas não é bem isso que estou procurando.

    Deixa eu te mostrar como vem meu banco de dados... e como quero que fique:

    Esta é uma pequena amostra de dados do meu banco:

    02/08/2011 AGR_AL1 A_A 0 0
    02/08/2011 AGR_AL1 A_B 0 0
    02/08/2011 AGR_AL1 A_C 0 0
    02/08/2011 AGR_AL1 MVAR 0 0
    02/08/2011 AGR_AL1 MW 0 0
    02/08/2011 AGR_AL2 A_A 18,7999992370605 0
    02/08/2011 AGR_AL2 A_B 23,7999992370605 0
    02/08/2011 AGR_AL2 A_C 22,3999996185303 0
    02/08/2011 AGR_AL2 MVAR 0,347000002861023 0
    02/08/2011 AGR_AL2 MW 0,74099999666214 0
    02/08/2011 AGR_AL3 A_A 19,7999992370605 0
    02/08/2011 AGR_AL3 A_B 16,5 0
    02/08/2011 AGR_AL3 A_C 17,7999992370605 0
    02/08/2011 AGR_AL3 MVAR 0,174999997019768 0
    02/08/2011 AGR_AL3 MW 0,660000026226044 0
    02/08/2011 AGR_AL4 A_A 52,7999992370605 0
    02/08/2011 AGR_AL4 A_B 58,7000007629395 0
    02/08/2011 AGR_AL4 A_C 52,7000007629395 0
    02/08/2011 AGR_AL4 MVAR 0,841000020503998 0
    02/08/2011 AGR_AL4 MW 1,88900005817413 0
    02/08/2011 AGR_AL5 A_A 3,40000009536743 0
    02/08/2011 AGR_AL5 A_B 5,09999990463257 0
    02/08/2011 AGR_AL5 A_C 4,09999990463257 0
    02/08/2011 AGR_AL5 MVAR 0,090999998152256 0
    02/08/2011 AGR_AL5 MW 0,128999993205071 0
    02/08/2011 AGR_AL6 A_A 17,5 0
    02/08/2011 AGR_AL6 A_B 2 0
    02/08/2011 AGR_AL6 A_C 17,5 0
    02/08/2011 AGR_AL6 MVAR 0,666000008583069 0
    02/08/2011 BAG2_IB KV_AT1 238 0
    02/08/2011 BAG2_IB KV_AT2 0 0
    02/08/2011 BAG2_IB KV_BT 69,9000015258789 0
    02/08/2011 BAG2_LIV2 A_A 104,006988525391 0
    02/08/2011 BAG2_LIV2 MVAR -14,8000001907349 0
    02/08/2011 BAG2_LIV2 MW -38,7000007629395 0
    02/08/2011 BAG2_TR1 MVA 14,2369241714478 0
    02/08/2011 BAG2_TR1 MVAR 3,5 0
    02/08/2011 BAG2_TR1 MW 13,8000001907349 0
    02/08/2011 BAG2_TR2 MVA 20,1009960174561 0
    02/08/2011 BAG2_TR2 MVAR 0,200000002980232 0
    02/08/2011 BAG2_TR2 MW 20,1000003814697 0
    02/08/2011 BAG2_TR3 MVA 4,14367008209229 0
    02/08/2011 BAG2_TR3 MVAR 0,600000023841858 0
    02/08/2011 BAG2_TR3 MW 4,09999990463257 0
    02/08/2011 BAG2_TR4 MVA 5,59016990661621 0
    02/08/2011 BAG2_TR4 MVAR 1 0
    02/08/2011 BAG2_TR4 MW 5,5 0
    02/08/2011 BAG2_UPME A_A 25,9476947784424 0
    02/08/2011 BAG2_UPME MVAR 9,39999961853027 0
    02/08/2011 BAG2_UPME MW 4,30000019073486 0
    02/08/2011 CAM1_PAL9 A_A 37,6610679626465 0
    02/08/2011 CAM1_PAL9 MVAR 4,48000001907349 0
    02/08/2011 CAM1_PAL9 MW -14,3000001907349 0
    02/08/2011 CAM1_TR1 A_A 182,244415283203 0
    02/08/2011 CAM1_TR1 KV_AT1 235,699996948242 0
    02/08/2011 CAM1_TR1 KV_BT 70,6999969482422 0
    02/08/2011 CAM1_TR1 MVA 21,7545146942139 0
    02/08/2011 CAM1_TR1 MVAR 2,75 0
    02/08/2011 CAM1_TR1 MW 21,5799999237061 0
    02/08/2011 CAM1_TR5 A_A 182,358184814453 0
    02/08/2011 CAM1_TR5 MVA 21,7680969238281 0
    02/08/2011 CAM1_TR5 MVAR 2,70000004768372 0
    02/08/2011 CAM1_TR5 MW 21,6000003814697 0
    02/08/2011 CAM1_UPME A_A 79,0745620727539 0
    02/08/2011 CAM1_UPME MVAR -12,6700000762939 0
    02/08/2011 CAM1_UPME MW -28,7999992370605 0
    02/08/2011 CAM2_AL21 A_A 138 0
    02/08/2011 CAM2_AL21 A_B 136 0
    02/08/2011 CAM2_AL21 A_C 136 0
    02/08/2011 CAM2_AL21 MVAR 1,57099997997284 0
    02/08/2011 CAM2_AL21 MW 5,13299989700317 0
    02/08/2011 CAM2_AL22 A_A 16 0
    02/08/2011 CAM2_AL22 A_B 17 0
    02/08/2011 CAM2_AL22 A_C 18 0
    02/08/2011 CAM2_AL22 MVAR 0,333999991416931 0
    02/08/2011 CAM2_AL22 MW 0,565999984741211 0
    02/08/2011 CAM2_AL23 A_A 0 0
    02/08/2011 CAM2_AL23 A_B 0 0
    02/08/2011 CAM2_AL23 A_C 0 0
    02/08/2011 CAM2_AL23 MVAR 0 0
    02/08/2011 CAM2_AL23 MW 2,59100008010864 0
    02/08/2011 CAM2_AL24 A_A 164 0
    02/08/2011 CAM2_AL24 A_B 166 0
    02/08/2011 CAM2_AL24 A_C 161 0

    Destes dados me interessam somente alguns em cada pesquisa. Por exemplo:

    NA PRIMEIRA PESQUISA QUERO

    AGR_AL5A_A

    AGR_AL6A_A

    ALV_AL1A_A

    ALV_AL2A_A

    ALV_AL3A_A

    RGR2_AL25A_CALC

    RGR2_AL26A_CALC

    RGR2_AL27A_CALC

    SAO_AL1A_A

    SAO_AL2A_A

    SVP_AL5A_A

    SVP_AL6A_A

    TAI_AL1A_B

    TAI_AL2A_B

    TAI_AL3A_B

    TAI_AL4A_B

    Na verdade são muitos mais itens que quero e não sei definir um a um nome a nome, pois o usuário escolherá através de uma caixa de seleção que insere em uma tabela os campos desejados para cada filtro.

    NA SEGUNDA PESQUISA QUERO:

    AGR_JAGMVA

    AGR_TR1MVA

    ALV_TR1MVA

    ALV_TR3MVA

    ARE_TR1MVA

    ARE_TR2MVA

    ASA_TR1MVA

    ASA_TR2MVA

    ATL_TR1MVA

    ATL_TR3MVA

    NA TERCEIRA QUERO

    AGR_JAGKV_B

    AGR_TR1KV_B_BT

    ALV_TR1KV_AT

    ALV_TR1KV_B_BT

    ALV_TR3KV_B_BT

    ARE_CRM1KV_B

    ARE_TR1KV_B_BT

    ARE_TR2KV_B_BT

    Quero portanto pré-definir estes filtros mas sem que eles tenham alguma coisa em comum no nome.

    Meus filtros serão apenas uma composição do TxtGroup + TxtVar na coluna, me trazendo o TxtDateTime em linha e sgnValue como resposta

    <br>txtDateTime <br>AGR_JAGKV_B <br>AGR_TR1KV_B_BT
    <br>1/12/11 0:00 <br>140,00 <br>23,70
    <br>1/12/11 0:01 <br>139,80 <br>23,70
    <br>1/12/11 0:02 <br>139,90 <br>23,70
    <br>1/12/11 0:03 <br>139,70 <br>23,70
    <br>1/12/11 0:04 <br>139,80 <br>23,70

    Será que agora consegui me expressar melhor?

    Obrigado e aguardo contato.

    Esta resposta foi útil?

    0 comentários Sem comentários
  2. Anônima
    2011-12-10T18:43:26+00:00

    Olá,

    Experimente criar algo como:

    With Sheets("Plan2").PivotTables("Tabela dinâmica1")

    With .PivotFields("Potência")

    .EnableMultiplePageItems = True

    .PivotItems("150 W").Visible = True

    .PivotItems("200 W").Visible = False

    .PivotItems("300 W").Visible = True

    .PivotItems("500 W").Visible = False

    End With

    With .PivotFields("Volume")

    .EnableMultiplePageItems = True

    .PivotItems("0,5 m3").Visible = True

    .PivotItems("1,0 m3").Visible = False

    .PivotItems("1,5 m3").Visible = True

    .PivotItems("2,0 m3").Visible = False

    End With

    With .PivotFields("Preço")

    .EnableMultiplePageItems = True

    .PivotItems("1000").Visible = True

    .PivotItems("1500").Visible = False

    .PivotItems("2000").Visible = True

    .PivotItems("2500").Visible = False

    End With

    End With

    Plan2 - é a Planilha que contém a tabela dinâmica

    Tabela dinâmica1 - é o nome da tabela dinâmica. Para ver o nome, basta clicar nela e depois no menu contextual de tabela dinâmica.

    Use o gravador de macros para construir pesquisas personalizadas e melhore a estética do seu código com a estrutura With ... End With.

    Sobre o gravador de macros: http://www.ambienteoffice.com.br/excel/ferramenta_gravar_macro/

    Esta resposta foi útil?

    0 comentários Sem comentários
  3. Anônima
    2011-12-09T15:51:05+00:00

    Olá Bruno, 

    Acho que não consegui me expressar direito, vou tentar novamente.

    Pretendo ter um arquivo base que contenha em alguma aba, diferentes filtros que aplicarei em um mesmo arquivo da base de dados.

    Desta forma, este arquivo excel deverá importar um arquivo acess (dados originais) como "relatorio de tabela dinâmica" e aplicar um filtro pré-definido que estará em alguma das abas. Após aplicar o determinado filtro ele deve exportar o resultado e reiniciar o processo aplicando um novo filtro nos dados originais e exportando os mesmos.

    Os filtros devem ser da seguinte forma:

    Filtro: Potencias  (poderia ser uma aba ou coluna do próprio arquivo base)

    1 - potencia transformador 1

    2 - potencia transformador 2

    3 - potencia transformador 3

    ....

    Filtro: Volumes (poderia ser uma aba ou coluna do próprio arquivo base)

    1- Volume Transformador 1

    2 - Volume Transformador 2

    ....

    Filtro: Preço (poderia ser uma aba ou coluna do próprio arquivo base)

    1 - preço transformador 1

    2 - preço transformador 2

    3 - preço transformador 3

    Desta forma terei varias tabelas separadas por cada determinado filtro que eu escolhi.

    Se eu fizer uma alteração na lista do filtro (por exemplo incluir um novo transformador) ele automaticamente incluirá tal equipamento na próxima análise a ser feita.

    Esta resposta foi útil?

    0 comentários Sem comentários
  4. Anônima
    2011-12-09T12:28:52+00:00

    Olá,

    Neste caso, sugiro que detalhe passo a passo o que está tentando fazer, com mais detalhes do que os informados acima, pois assim a comunidade poderá lhe auxiliar da melhor forma.

    Ocorre que ao efetuar alguns testes com a tabela dinâmica, não foi possível puxar a referência de um arquivo ou planilha fechado, ou seja, os arquivos necessariamente precisam estar abertos. Com o arquivo aberto, você consegue, usando a tabela dinâmica, você irá conseguir puxar os filtros que necessita. Tente efetuar os testes com os arquivos abertos e verifique se o problema é solucionado.

    Espero ter ajudado.

    Até mais!!!

    Esta resposta foi útil?

    0 comentários Sem comentários