Notifications
Clear all

Atualizar todas a Pivot Table do workbook

4 Posts
2 Usuários
0 Reactions
809 Visualizações
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Olá a todos,

VEnho pedir a vossa ajuda para o seguinte problema:

Tenho o seguinte código que permite atualizar todas as pivot table do meu arquivo (são mais de 20 pivots):

Sub RefreshAllPivotTables()

Dim PT As pivotTable
Dim WS As Worksheet

    For Each WS In ThisWorkbook.Worksheets

        For Each PT In WS.PivotTables
          PT.RefreshTable
        Next PT

    Next WS

End Sub

O problema é que aparece o seguinte erro:
"Run.time error '1004':
Please wait until Microsoft Office Excel has finished refreshing the PiviotTable report, and then try the command again"

Parece que o codigo vai refrescar outra pivot sem o processo ter acabado na anterior. Alguem sabe como resolver?

Obrigado.

 
Postado : 14/08/2015 5:25 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não trabalho com tabela dinamica, mas em uma busca rápida, a principio a rotina está correta, agora quanto ao erro, no google tem vario links a respeito, um deles é o abaixo :
1004 - Please wait until Microsoft Excel has finished refreshing the PivotTable report, and then try the command again.
http://www.mrexcel.com/forum/excel-ques ... again.html

Veja se a solução indicada se aplica a sua questão, se não vamos aguardar outras opiniões.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/08/2015 7:06 am
(@miguexcel)
Posts: 167
Estimable Member
Topic starter
 

Obrigado Mauro. Mas não funciona.

Fica processando e não sai do mesmo sitio. :( Experimentei da seguinte forma:

Sub RefreshAllPivotTables()

Dim PT As pivotTable
Dim WS As Worksheet

resumeWait:

    On Error GoTo errWait
   
    For Each WS In ThisWorkbook.Worksheets

        For Each PT In WS.PivotTables
          PT.RefreshTable
        Next PT

    Next WS

 On Error GoTo 0
    
    Exit Sub

errWait:
    Resume resumeWait 'Resume the code to try again
End Sub
 
Postado : 14/08/2015 8:55 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Miguel não tenho como testar a rotina, mas se conseguir anexar seu modelo podemos ver.

Outra coisa, tente alterar a localização da linha de erro :

Aqui :
On Error GoTo errWait
For Each WS In ThisWorkbook.Worksheets
'Ou aqui:
On Error GoTo errWait
For Each PT In WS.PivotTables

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 14/08/2015 10:35 am