locked
Atualização de tabelas dinâmicas e filtros RRS feed

  • Pergunta

  • Preciso fazer uma macro que atualize 5 tabelas dinâmicas diferentes e após a atualização filtre o valor "1" em um campo da tabela.

    A macro que fiz atualiza e filtra na primeira planilha, na segunda dá o seguinte erro:

    Erro em tempo de execução '1004':
    O método AutoFilter da classe Range falhou

    Sou bem amador criando macros, se alguém puder me ajudar.

    Obrigado,

    abaixo o código da macro:

    Sub Atualizar()
    '
    '
        ActiveSheet.PivotTables("Tabela dinâmica2").PivotCache.Refresh
        Selection.AutoFilter Field:=20, Criteria1:=1
        Sheets("Miguel").Select
        ActiveSheet.PivotTables("Tabela dinâmica3").PivotCache.Refresh
        Selection.AutoFilter Field:=20, Criteria1:=1
        Sheets("Renata").Select
        ActiveSheet.PivotTables("Tabela dinâmica4").PivotCache.Refresh
        Selection.AutoFilter Field:=20, Criteria1:=1
        Sheets("Tietre").Select
        ActiveSheet.PivotTables("Tabela dinâmica5").PivotCache.Refresh
        Selection.AutoFilter Field:=20, Criteria1:=1
        Sheets("Francisco").Select
        ActiveSheet.PivotTables("Tabela dinâmica6").PivotCache.Refresh
        Selection.AutoFilter Field:=20, Criteria1:=1
        Sheets("Lincoln").Select
    End Sub

    quarta-feira, 5 de maio de 2010 00:34

Respostas

  • Perdão,

    Segue a versão corrigida:

    Sub Atualizar()

        On Error Resume Next

        For Each ws In ThisWorkbook.Sheets

            ws.Select

            ActiveSheet.PivotTables(1).PivotCache.Refresh

            Selection.AutoFilter Field:=20, Criteria1:=1

        Next ws

    End Sub

    [ ]s


    Adilson Soledade - MOS http://adilsonsoledade.blogspot.com/
    • Marcado como Resposta Fabricioasm quarta-feira, 5 de maio de 2010 11:07
    quarta-feira, 5 de maio de 2010 01:52

Todas as Respostas

  • Boa noite,

    Experimente este código aqui:

    Sub Atualizar()

        On Error Resume Next

        For Each ws In ThisWorkbook.Sheets

            ws.Select

            ActiveSheet.PivotTables(1).PivotCache.Refresh

            Selection.AutoFilter Field:=20, Criteria1:=1

            With ws

        Next ws

    End Sub

    [ ]s


    Adilson Soledade - MOS http://adilsonsoledade.blogspot.com/
    • Sugerido como Resposta adilsonsoledade quarta-feira, 5 de maio de 2010 01:33
    • Não Sugerido como Resposta Fabricioasm quarta-feira, 5 de maio de 2010 01:49
    quarta-feira, 5 de maio de 2010 01:33
  • Aparece a msg:

    Erro de compilação:

    Next sem For

     

    []'s

    quarta-feira, 5 de maio de 2010 01:39
  • Perdão,

    Segue a versão corrigida:

    Sub Atualizar()

        On Error Resume Next

        For Each ws In ThisWorkbook.Sheets

            ws.Select

            ActiveSheet.PivotTables(1).PivotCache.Refresh

            Selection.AutoFilter Field:=20, Criteria1:=1

        Next ws

    End Sub

    [ ]s


    Adilson Soledade - MOS http://adilsonsoledade.blogspot.com/
    • Marcado como Resposta Fabricioasm quarta-feira, 5 de maio de 2010 11:07
    quarta-feira, 5 de maio de 2010 01:52
  • Funcionou perfeitamente, obrigado.

    []'s

    quarta-feira, 5 de maio de 2010 11:03