¿Que macro recomiendan para actualizar Tablas dinámicas?
¿Que macro recomiendan para actualizar Tablas dinámicas?
Buenas tardes. Suelo utilizar muchas tablas dinámicas en mi trabajo y hace años que vengo utilizando una macro para actualizar varias tablas dinámicas específicas al mismo tiempo (macro que bajé del foro Openoffice en inglés).
Bueno el problema es que al ejecutar esta macro (que por cierto es muy útil) a veces el opencalc cae y se cierra y este inconveniente suele pasar a menudo. Por suerte no pierdo mi trabajo pero si suelo tardar mucho para recuperar y reabrir el archivo y con el tiempo esto se torna desagradable para el trabajo. Utilizo la versión 4.1.6 de Openoffice, tengo 8gb de RAM procesador de 3.2 Ghz Core i5 4460
y Windows 7SP1 y mucho espacio en disco duro.
Quería consultar si a día de hoy existe alguna macro más segura o alguna aplicación funcional para Opencalc y que no produzca esta clase de fallos (al actualizar muchas tablas dinámicas el opencalc produce error y se cierra).
La macro que vengo usando es la siguiente (los números entre paréntesis representan las tablas dinámicas y donde dice Hoja1 se refiere a la hoja del archivo):
Sub update_PT
sheet = thisComponent.Sheets.getByName("Hoja1")
PT = sheet.DataPilotTables.getByIndex(0)
PT.refresh()
PT = sheet.DataPilotTables.getByIndex(1)
PT.refresh()
PT = sheet.DataPilotTables.getByIndex(3)
PT.refresh()
end sub
Agradezco desde ya vuestros comentarios.
Bueno el problema es que al ejecutar esta macro (que por cierto es muy útil) a veces el opencalc cae y se cierra y este inconveniente suele pasar a menudo. Por suerte no pierdo mi trabajo pero si suelo tardar mucho para recuperar y reabrir el archivo y con el tiempo esto se torna desagradable para el trabajo. Utilizo la versión 4.1.6 de Openoffice, tengo 8gb de RAM procesador de 3.2 Ghz Core i5 4460
y Windows 7SP1 y mucho espacio en disco duro.
Quería consultar si a día de hoy existe alguna macro más segura o alguna aplicación funcional para Opencalc y que no produzca esta clase de fallos (al actualizar muchas tablas dinámicas el opencalc produce error y se cierra).
La macro que vengo usando es la siguiente (los números entre paréntesis representan las tablas dinámicas y donde dice Hoja1 se refiere a la hoja del archivo):
Sub update_PT
sheet = thisComponent.Sheets.getByName("Hoja1")
PT = sheet.DataPilotTables.getByIndex(0)
PT.refresh()
PT = sheet.DataPilotTables.getByIndex(1)
PT.refresh()
PT = sheet.DataPilotTables.getByIndex(3)
PT.refresh()
end sub
Agradezco desde ya vuestros comentarios.
OpenOffice 3.1 en Windows 7 SP1
- PepeOooSevilla
- Mensajes: 1480
- Registrado: Sab Abr 04, 2009 6:10 pm
- Ubicación: Sevilla (España)
Re: ¿Que macro recomiendan para actualizar Tablas dinámicas?
Hola.
Para actualizar todas las tablas dinámicas de un archivo con varias hojas utilizo:
Saludo cordiales.
Para actualizar todas las tablas dinámicas de un archivo con varias hojas utilizo:
Código: Seleccionar todo
REM ***** BASIC *****
Option Explicit
Sub ActualizarTablasDinamicas()
Dim Hoja as Object
Dim TablaDinamica as Object
For Each Hoja In ThisComponent.Sheets
For Each TablaDinamica In Hoja.DataPilotTables
TablaDinamica.Refresh()
Next TablaDinamica
Next Hoja
End Sub
LibreOffice 6.4.6. Windows 10. Java 8 rev. 261 (64 bits)
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Por favor, utiliza el Foro para tus consultas, no los mensajes privados
Si usas OpenOffice/LibreOffice trabaja y guarda en ODT, ODS, ODP, ... Y haz copias de seguridad.
Re: ¿Que macro recomiendan para actualizar Tablas dinámicas?
Estuve probando la macro de PepeOooSevilla. Una vez funcionó la actualización, y otras veces me sucedió el mismo problema (al actualizar muchas tablas dinámicas el opencalc produce error y se cierra). Bueno es una realidad que mi archivo de Opencalc está exigido porque utilizo muchísimas fórmulas y formatos condicionales. Estuve pensando que tal vez sea interesante darle siempre un recálculo automático de celdas al archivo (esto antes de ejecutar las macros de actualización tablas dinámicas).
Gracias por interesarse Sr. Sevilla. Estaré informando si tengo suerte con el experimento del recálculo de celdas mencionado.
Cordiales Saludos.
Gracias por interesarse Sr. Sevilla. Estaré informando si tengo suerte con el experimento del recálculo de celdas mencionado.
Cordiales Saludos.
OpenOffice 3.1 en Windows 7 SP1
Re: ¿Que macro recomiendan para actualizar Tablas dinámicas?
Qué tal un wait de 100 milisegundos de una tabla a otra?
A veces hay que dar un poco de margen. Para que se reorganice el sistema en procesos complejos.
Un saludo!
A veces hay que dar un poco de margen. Para que se reorganice el sistema en procesos complejos.
Un saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: ¿Que macro recomiendan para actualizar Tablas dinámicas?
["Longi"]Qué tal un wait de 100 milisegundos de una tabla a otra?
A veces hay que dar un poco de margen. Para que se reorganice el sistema en procesos complejos.
¡Muy interesante! Voy a estudiar esa alternativa. Muchas gracias.
A veces hay que dar un poco de margen. Para que se reorganice el sistema en procesos complejos.
¡Muy interesante! Voy a estudiar esa alternativa. Muchas gracias.
OpenOffice 3.1 en Windows 7 SP1
Re: ¿Que macro recomiendan para actualizar Tablas dinámicas?
Buen día
Estuve analizando la propuesta del "wait" de 100 milisegundos y como no logré hacerlo aún, pues he decidido (mientras tanto) probar con algo parecido.
Agregué un "msgbox" (macro de cuadro de mensaje) entre las macros que actualizan los distintos pilotos de datos.
Con esto logré que el sistema descanse hasta que se le haga un click en el botón "Aceptar" que aparece al ejecutarse el msgbox.
Las caídas (crash) del opencalc se redujeron pero drásticamente (a veces sigue sucediendo, pero muchísimo menos que antes).
Bueno estas son las novedades sobre el tema por ahora.
Agradezco la gentileza de quienes se interesaron y se siguen interesando por el tema.
Saludos cordiales.
Estuve analizando la propuesta del "wait" de 100 milisegundos y como no logré hacerlo aún, pues he decidido (mientras tanto) probar con algo parecido.
Agregué un "msgbox" (macro de cuadro de mensaje) entre las macros que actualizan los distintos pilotos de datos.
Con esto logré que el sistema descanse hasta que se le haga un click en el botón "Aceptar" que aparece al ejecutarse el msgbox.
Las caídas (crash) del opencalc se redujeron pero drásticamente (a veces sigue sucediendo, pero muchísimo menos que antes).
Bueno estas son las novedades sobre el tema por ahora.
Agradezco la gentileza de quienes se interesaron y se siguen interesando por el tema.
Saludos cordiales.
OpenOffice 3.1 en Windows 7 SP1
Re: ¿Que macro recomiendan para actualizar Tablas dinámicas?
Buenas!
La implementación sería algo así, aunque sin hacer pruebas seguro que algo no ha quedado bien:
Para el código que usabas:
Sub update_PT
sheet = thisComponent.Sheets.getByName("Hoja1")
PT = sheet.DataPilotTables.getByIndex(0)
PT.refresh()
Wait 100 'o una cifra mayor
PT = sheet.DataPilotTables.getByIndex(1)
PT.refresh()
Wait 100 ' o una cifra mayor
PT = sheet.DataPilotTables.getByIndex(3)
PT.refresh()
end sub
Para el código de PepeOooSevilla
Seguramente el tiempo de espera sea superior a los 100 milisegundos, ya que un msgbox viene a ser lo mismo pero de tiempo indefinido, y a pesar de eso te da problemas de vez en cuando.
Debieras mirar si siempre es en la misma tabla dinámica, y de ser así, seguramente haya algo incorrecto en el diseño general.
Otro saludo!
La implementación sería algo así, aunque sin hacer pruebas seguro que algo no ha quedado bien:
Para el código que usabas:
Sub update_PT
sheet = thisComponent.Sheets.getByName("Hoja1")
PT = sheet.DataPilotTables.getByIndex(0)
PT.refresh()
Wait 100 'o una cifra mayor
PT = sheet.DataPilotTables.getByIndex(1)
PT.refresh()
Wait 100 ' o una cifra mayor
PT = sheet.DataPilotTables.getByIndex(3)
PT.refresh()
end sub
Para el código de PepeOooSevilla
Código: Seleccionar todo
REM ***** BASIC *****
Option Explicit
Sub ActualizarTablasDinamicas()
Dim Hoja as Object
Dim TablaDinamica as Object
For Each Hoja In ThisComponent.Sheets
For Each TablaDinamica In Hoja.DataPilotTables
TablaDinamica.Refresh()
Wait 100 ' o una cifra mayor
Next TablaDinamica
Next Hoja
End Sub
Debieras mirar si siempre es en la misma tabla dinámica, y de ser así, seguramente haya algo incorrecto en el diseño general.
Otro saludo!
Openoffice 4.1.7, en Windows 10
Libreoffice 6.4.2, en Windows 10
Libreoffice 6.4.2, en Windows 10
Re: ¿Que macro recomiendan para actualizar Tablas dinámicas?
¡Muy interesante! Muchas gracias. Cuando tenga resultados informaré al foro.
Hasta pronto.
Hasta pronto.
OpenOffice 3.1 en Windows 7 SP1