Notifications
Clear all

Filtrar 2 datas nos rótulos de coluna de uma tabela dinâmica via Vba

5 Posts
2 Usuários
2 Reactions
1,140 Visualizações
Cunha
(@cunha)
Posts: 7
Active Member
Topic starter
 

Boa tarde pessoal!

Vejam se podem me ajudar por favor.

Estou precisando filtrar 2 datas distintas nos rótulos de coluna de uma tabela dinâmica que possui várias datas. Gostaria que esse filtro ocorresse de forma dinâmica. Ou seja, que acrescentasse a data 1 e a data 2 em 2 celulas e que a partir dessas datas o filtro fosse realizado na tabela dinâmica ou que quando atualizasse fosse solicitado a data 1 e a data 2 por inputbox para incluir no filtro da tabela dinâmica.

Eu filtrando manualmente chego exatamente no resultado esperado. Porém, quando gravo a macro, ela retorna o código em anexo que não consigo utilizar pois ele é fixo e a cada dia eu incluiria uma data nova no relatório.

Tentei utilizar o comando "filtros de data" e "é igual a"..Porém, ele só aceita 1 critério e eu precisaria incluir 2 datas e não apenas 1...Se desse pra incluir as 2 seria perfeito....

Desde já..Muito obrigado.

Sub FiltrarData()
'


'
    With ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("DATA")
        .PivotItems("20/12/2021").Visible = False
        .PivotItems("21/12/2021").Visible = False
        .PivotItems("22/12/2021").Visible = False
        .PivotItems("23/12/2021").Visible = False
        .PivotItems("24/12/2021").Visible = False
        .PivotItems("27/12/2021").Visible = False
        .PivotItems("28/12/2021").Visible = False
        .PivotItems("29/12/2021").Visible = False
        .PivotItems("30/12/2021").Visible = False
        .PivotItems("31/12/2021").Visible = False
        .PivotItems("02/02/2022").Visible = False
        .PivotItems("03/02/2022").Visible = False
        .PivotItems("04/02/2022").Visible = False
        .PivotItems("05/02/2022").Visible = False
        .PivotItems("09/02/2022").Visible = False
        .PivotItems("10/02/2022").Visible = False
        .PivotItems("11/02/2022").Visible = False
        .PivotItems("12/02/2022").Visible = False
        .PivotItems("15/02/2022").Visible = False
        .PivotItems("16/02/2022").Visible = False
        .PivotItems("(blank)").Visible = False
    End With
    
    
 'Abaixo tentei utilizar o filtro de data é igual a"
    
    
    Range("C3").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("DATA").PivotFilters. _
        Add Type:=xlSpecificDate, Value1:="16/12/2021"
    
End Sub
 
Este tópico foi modificado 3 anos atrás 3 vezes by Cunha
 
Postado : 17/02/2022 5:04 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

@cunha,

Veja se pode ser assim.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 18/02/2022 8:17 am
Cunha reacted
Cunha
(@cunha)
Posts: 7
Active Member
Topic starter
 

@wagner-morel-vidal-nobre

Pelo que pude entender do código, seria exatamente isso. Porém, quando tento executa-lo retorna erro. Não sei se tenho que adicionar alguma biblioteca ou algo do tipo. Um detalhe importante é que utilizo o excel 2007.

Segue imagem em anexo com print do erro.

Obrigado.

 
Postado : 18/02/2022 8:48 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Cunha,

Infelizmente, já não tenho mais como ajudar pois aqui está executando perfeitamente, sem nenhum tipo de erro.

Eu uso o Office 365. Todavia, não existe nenhuma diferença (nesses comandos) em relação ao Office 2007.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 18/02/2022 11:28 am
Cunha reacted
Cunha
(@cunha)
Posts: 7
Active Member
Topic starter
 

@wagner-morel-vidal-nobre

Agradeço demais pela valiosa ajuda.

 
Postado : 18/02/2022 4:20 pm