Haz tu Pregunta
0

Puedo crear una macro para actualizar tablas dinámicas?

preguntado 2017-12-13 13:15:38 +0100

Imagen Gravatar de paco

Tengo varias tablas dinámicas creadas que toman datos de una misma base de datos, y me interesaría crear una macro para actualizar todas las tablas dinámicas a la vez. El caso es que creo la macro, pero después al ejecutarlo no funciona, o sea no se actualizan las tablas.

edit re-etiquetar marcar como ofensivo cerrar fusionar delete

2 Respuestas

Ordenar por » viejos nuevas más votado
0

respondido 2017-12-14 00:33:51 +0100

updated 2017-12-14 00:35:50 +0100

Actualiza la tabla dinámica informando una celda de la tabla.

'=========================================================================
sub AtualizarTabelaDimamicaCel (x as string)
' exemplo uso: AtualizarTabelaDinamicaCel "Planilha1.c7"
' observação: indicar uma célula da Tabela Dinâmica.
'=========================================================================
Dim document As Object
Dim dispatcher As Object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = x 'indicar uma célula da Tabela Dinâmica.
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:RecalcPivotTable", "", 0, Array())
end sub

Actualiza la tabla dinámica informando el número de la tabla.

'=========================================================================
Sub AtualizaTabelaDinamicaN (x as integer)
'exemplo uso: AtualizarTabelaDinamicaN 1
' observação: indicar o numero da Tabela Dinâmica.
'=========================================================================
'   Atualiza Tabela Dinâmica (por Grafeno)
rem ----------------------------------------------------------------------
Dim PlanAtiva as Object
Dim TabDinam1 as Object
'Obter a Planilha Ativa e a Tabela Dinâmica
PlanAtiva = ThisComponent.getCurrentController.getActiveSheet()
TabDinam1 = PlanAtiva.DataPilotTables.getByIndex(x) 'x = Numero Tabela
'Atualizar a Tabela Dinâmica
TabDinam1.refresh()
End sub
edit marcar como ofensivo delete enlace mas
0

respondido 2017-12-13 16:31:20 +0100

Imagen Gravatar de m.a.riosv

Creo que en este hilo del foro inglés de AOo puedes encontrar lo que buscas.

Autorefresh DataPilot Tables

edit marcar como ofensivo delete enlace mas
Ingresa/Regístrate para Contestar

Herramientas de Preguntas

1 seguidor

Estadisticas

Preguntado: 2017-12-13 13:15:38 +0100

Visto: 263 veces

Ultima actualización: Dec 14 '17