- 18 Mar 2020 às 10:50
#52982
Fala galera, tranquilo ?
Dei uma olhada aqui no fórum (e em muitos outros) e apesar de encontrar posts com problemas semelhantes, não consegui aplicar nada...Poderiam me dar uma ajuda, por favor ?
Tenho uma planilha com muitas abas (muitas mesmos) que contem tabelas dinâmicas, e cada uma dessas abas tem de 1 até 20 tabelas dinâmicas, dependendo da info. Cada aba tira suas informações de uma base diferente (que ficam fora dessa planilha).
Exemplo resumo: 20 abas, 70 tabelas dinâmicas, 20 arquivos externos que contém bases para cada aba.
Quinzenalmente eu preciso atualizar todas estas abas e posteriormente as tabelas dinâmicas. Eu tenho feito isso manualmente, o que leva bastante tempo (tanto pela quantidade quanto pela velocidade do Excel), abrindo cada base, atualizando as Tabelas desta base, fechando e indo para a próxima.
Esta planilha foi criada por uma pessoa que trabalhou aqui anteriormente, e já existe uma macro/vba que faria esse trabalho de abrir e atualizar tudo, porém, ela não funciona (aparentemente funcionava antigamente).
Precisava entender o que acontece de errado e tentar ajusta-la.
Exemplo do código que já possuo feito na planilha:
É mesmo necessário que eu abra cada base pelo VBA antes de realizar a atualização das tabelas? (eu preciso fazer isso manualmente, do contrário, a tabela não acha a base para atualizar).
Consigo usara algo parecido com "active.worksheet refreshall.pivottables"??
Desculpe pelo post um pouco longo e talvez mal explicado
Agradeço desde já pela ajuda.
Att,
RSA
Dei uma olhada aqui no fórum (e em muitos outros) e apesar de encontrar posts com problemas semelhantes, não consegui aplicar nada...Poderiam me dar uma ajuda, por favor ?
Tenho uma planilha com muitas abas (muitas mesmos) que contem tabelas dinâmicas, e cada uma dessas abas tem de 1 até 20 tabelas dinâmicas, dependendo da info. Cada aba tira suas informações de uma base diferente (que ficam fora dessa planilha).
Exemplo resumo: 20 abas, 70 tabelas dinâmicas, 20 arquivos externos que contém bases para cada aba.
Quinzenalmente eu preciso atualizar todas estas abas e posteriormente as tabelas dinâmicas. Eu tenho feito isso manualmente, o que leva bastante tempo (tanto pela quantidade quanto pela velocidade do Excel), abrindo cada base, atualizando as Tabelas desta base, fechando e indo para a próxima.
Esta planilha foi criada por uma pessoa que trabalhou aqui anteriormente, e já existe uma macro/vba que faria esse trabalho de abrir e atualizar tudo, porém, ela não funciona (aparentemente funcionava antigamente).
Precisava entender o que acontece de errado e tentar ajusta-la.
Exemplo do código que já possuo feito na planilha:
Código: Selecionar todos
as partes sublinhadas do código acima são onde está dando o erro (até o momento)Sub Atualizar()
Dim Tempo As Double
Tempo = Now()
Sheets("Atualizar").Select
Call Resultados.Resultado
'Dinâmica 126
Application.Workbooks.Open "\\LAQFS01\inteligencia mercado\00. BASES DE DADOS\BASE 126\BASE 2017 - AGRUPADO.xlsb", UpdateLinks:=False
Application.Workbooks.Open "\\LAQFS01\inteligencia mercado\98. PAINEL DE CONTROLE\Relatório_Diretoria\Graficos_Relatorio-Diretoria.xlsb"
Sheets("Dinâmica 126").Select
[u]ActiveSheet.PivotTables("Tabela dinâmica2").PivotCache.Refresh[/u]
[u]ActiveSheet.PivotTables("Tabela dinâmica1").PivotCache.Refresh
ActiveSheet.PivotTables("Tabela dinâmica3").PivotCache.Refresh[/u]
'Dinâmica 126 VPL
Application.Workbooks.Open "\\LAQFS01\inteligencia mercado\00. BASES DE DADOS\BASE 126\BASE 2017 - AGRUPADO.xlsb", UpdateLinks:=False
Application.Workbooks.Open "\\LAQFS01\inteligencia mercado\98. PAINEL DE CONTROLE\Relatório_Diretoria\Graficos_Relatorio-Diretoria.xlsb"
Sheets("Dinâmica 126 VPL").Select
[u]ActiveSheet.PivotTables("Tabela dinâmica3").PivotCache.Refresh
ActiveSheet.PivotTables("Tabela dinâmica2").PivotCache.Refresh
ActiveSheet.PivotTables("Tabela dinâmica1").PivotCache.Refresh[/u]
É mesmo necessário que eu abra cada base pelo VBA antes de realizar a atualização das tabelas? (eu preciso fazer isso manualmente, do contrário, a tabela não acha a base para atualizar).
Consigo usara algo parecido com "active.worksheet refreshall.pivottables"??
Desculpe pelo post um pouco longo e talvez mal explicado
Agradeço desde já pela ajuda.
Att,
RSA