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)
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.