Boa Tarde
Tenho o seguinte código que encontrei na internet que me auxiliou com
seguinte problema tenho uma tabela de dinâmica onde quero aplicar o filtro de uma lista no Excel
Esse codigo deu certo para (Números Inteiros )
Sub AtualizarDia()
On Error GoTo ErroAtualizarDia
Dim PrimeiraLinhaDW As Long, UltimaLinhaDW As Long, NomeTabelaDW As String
PrimeiraLinhaDW = 2
UltimaLinhaDW = Sheets("PARAMETROS").Cells(1, 1).End(xlDown).Row
'Executa o processo conforme a quantidade de tabelas dinâmicas existentes
For i = PrimeiraLinhaDW To UltimaLinhaDW
NomeTabelaDW = Sheets("PARAMETROS").Cells(i, 1).Text
'Atualiza a tabela dinâmica somente na 1ª vez que o processo é executado
If i = 2 Then
ActiveSheet.PivotTables(NomeTabelaDW).PivotCache.Refresh
End If
'Limpa os filtros
ActiveSheet.PivotTables(NomeTabelaDW).PivotFields("Dia").ClearAllFilters
'Executa o processo para cada um dos dias do mês
For j = 1 To 31
ActiveSheet.PivotTables(NomeTabelaDW).PivotFields("DIA").PivotItems(j).Visible = Worksheets("PARAMETROS").Cells(j + 1, 6).Value
Next j
Next i
Fim:
Exit Sub
ErroAtualizarDia:
If Err.Number = 1004 Then
Resume Next
Else
Mensagem = Err.Number & " " & Err.Description
MsgBox Mensagem, vbInformation, Titulo
End If
End Sub
Porém estou tentando adaptar esse código para aplicação de filtro com datas
Sub AtualizarData()
On Error GoTo ErroAtualizarData
Dim PrimeiraLinhaDW As Long, UltimaLinhaDW As Long, NomeTabelaDW As String
PrimeiraLinhaDW = 2
UltimaLinhaDW = Sheets("PARAMETROS").Cells(1, 1).End(xlDown).Row
'Executa o processo conforme a quantidade de tabelas dinâmicas existentes
For i = PrimeiraLinhaDW To UltimaLinhaDW
NomeTabelaDW = Sheets("PARAMETROS").Cells(i, 1).Text
'Atualiza a tabela dinâmica somente na 1ª vez que o processo é executado
If i = 2 Then
ActiveSheet.PivotTables(NomeTabelaDW).PivotCache.Refresh
End If
'Limpa os filtros
ActiveSheet.PivotTables(NomeTabelaDW).PivotFields("Data").ClearAllFilters
'Executa o processo para cada um dos dias do mês
For j = 1 To 62
ActiveSheet.PivotTables(NomeTabelaDW).PivotFields("Data ").PivotItems(j).Visible = Worksheets("PARAMETROS").Cells(j + 1, 11).Value
Next j
Next i
Fim:
Exit Sub
ErroAtualizarData:
If Err.Number = 1004 Then
Resume Next
Else
Mensagem = Err.Number & " " & Err.Description
MsgBox Mensagem, vbInformation, Titulo
End If
End Sub
Caso alguém já tenha realizado esse tipo de correção ou tenha mais experiencia e identifique onde
estou errado no código gostaria de alguma dica
Estou colocando o arquivo Exemplo Anexo
Postado : 07/08/2017 1:52 pm