Macro para atualizar várias tabelas dinâmicas na mesma planilha

Peço desculpas se já tem algum tópico igual, porém não achei. Sou novo em assunto de macros, andei pesquisando mas tenho dificuldade. Tenho uma planilha com várias tabelas dinâmicas e preciso que elas sejam atualizadas a cada vez que for inserido novos dados, como o Libreoffice calc não atualiza automaticamente, pesquisei e descobri que dá para usar macro. Desde Já agradeço a ajuda.

Ola @GabrielLazzarin , eu tenho esta alternativa…
Pode ser em varias planilha, é só direcionar
Onde esta “UmaCelulaTDx”, para “Planilha.UmaCelulaTDx”

Sub AtualizarTDs	
	GoToAdd "UmaCeluladaTD1"
	Execute “"RecalcPivotTable"

	GoToAdd "UmaCeluladaTD2"
	Execute “"RecalcPivotTable"

	'   outras .`…

End sub


' ================= SubMacros ==============

Sub GoToAdd ( xAdd$ )
'' Suporta os seguintes comandos: ( xAdd$ )
'' Planilha ...........	= "Plan1"
'' Planilha.Célula .... = "Plan1.C2"
'' Planilha.Área ......	= "Plan1.D5:V9"
'' Célula .............	= "C3"
'' Área ...............	= "H6:K12"
'' Área Nomeada .......	= "AreaNomeada"
'' Linha ..............	= "13"
'' Faixa de Linhas ....	= "16:19"
'' Coluna ............. = "H:H"
'' Faixa de Colunas ...	= "D:U"
dim Address(0) as new com.sun.star.beans.PropertyValue
Address(0).Name = "ToPoint" : Address(0).Value = xAdd
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame _
, ".uno:GoToCell", "", 0, Address())
End Sub

Sub Execute ( oQue$, Optional xValue% )
'' Os comando iniciados com Go___ , é obrigatório  
'' o valor da variável xValue, se maior que 1 (um). 
	If IsMissing ( xValue ) Then : xValue = 1 : End If
		Dim Goo(1) as new com.sun.star.beans.PropertyValue
		Goo(0).Name = "By" : Goo(0).Value = xValue
		Goo(1).Name = "Sel" : Goo(1).Value = false
		CreateUnoService("com.sun.star.frame.DispatchHelper") _
		.executeDispatch(ThisComponent.CurrentController _
		.Frame, ".uno:" & oQue & "", "", 0, Goo())
End Sub

Não consegui, acho que estou fazendo alguma coisa errada,
consegue dar uma olhada se não for muito incômodo.

PLANILHA DESCARTE.xlsx (31.6 KB)

1 Like

Com base na solução apresentada aqui

Segue sugestão:
Ask_AtualizarTabelas.ods (53,2,KB)
.
.

Macros do LibreOffice não funcionam no MSOffice, mas o contrário sim.
.
Com isso, utilize sempre planilha com extensão .ods (padrão internacional), como formato de origem. Se precisar exportar a planilha com outra extensão basta Salvar como.
.
Assim você evita perder as macros também.
.
Se a reposta te atender, marque como solução por favor.

1 Like

Parabéns @FelipeAle, já arquivada em Minhas SubMacros, para futuro usos.

1 Like

Obrigado pelo elogio @schiavinatto ! :handshake:

1 Like