Oi galera, boa tarde!
Tenho a planilha em anexo que quero filtrar as semanas do ano através dos valores de semana setados nas células do excel.
Fiz o código abaixo, porém não estou conseguindo setar todas as semanas que eu quero, pesquisei na net algumas logicas para me ajudar, porém não estou conseguindo, alguém conseguiria me ajudar a concluir este código?
Abaixo segue lógica:
Sub teste()
Dim iAno As Integer
Dim iSemana1 As Integer
Dim iSemana2 As Integer
Dim iSemana3 As Integer
Dim iSemana4 As Integer
iAno = Sheets("Planilha2").Range("D2").Value
iSemana1 = Sheets("Planilha2").Range("D3").Value
iSemana2 = Sheets("Planilha2").Range("D4").Value
iSemana3 = Sheets("Planilha2").Range("D5").Value
iSemana4 = Sheets("Planilha2").Range("D6").Value
'funciona ok
ActiveSheet.PivotTables("pivot1").PivotFields("Ano").ClearAllFilters
ActiveSheet.PivotTables("pivot1").PivotFields("Ano").CurrentPage = iAno
'funciona ok
ActiveSheet.PivotTables("pivot1").PivotFields("Semana").ClearAllFilters
ActiveSheet.PivotTables("pivot1").PivotFields("Semana").CurrentPage = iSemana1
'não funciona
ActiveSheet.PivotTables("pivot1").PivotFields("Semana").CurrentPage = iSemana2
ActiveSheet.PivotTables("pivot1").PivotFields("Semana").CurrentPage = iSemana3
ActiveSheet.PivotTables("pivot1").PivotFields("Semana").CurrentPage = iSemana4
End Sub
'exemplos macros do excel, porém não consegui uma lógica para fazer o inverso.
ActiveSheet.PivotTables("pivot1").PivotFields("Semana").CurrentPage = "(All)"
With ActiveSheet.PivotTables("pivot1").PivotFields("Semana")
.PivotItems("1").Visible = False
.PivotItems("3").Visible = False
.PivotItems("5").Visible = False
.PivotItems("6").Visible = False
.PivotItems("7").Visible = False
.PivotItems("0").Visible = False
End With
Conto com a ajuda de todos.
Obrigada
Postado : 23/05/2018 9:50 am