Tablas Dinámicas soluciones y preguntas frecuentes
- La manera mas fácil y rápida es seleccionar la área de la tabla dinámica, hacer clic derecho y elegir el botón ‘Refresh Data’.
En cuanto la conexión está configurada correctamente, el informe de tabla dinámica será actualizado instantáneamente.
- Otra manera común de actualizar un Excel crosstab es usar el código VBA (Visual Basic for Applications). Con esta solución el código puede ser ejecutado al suceder un evento como por ejemplo cambio de valor de una celda, en un tiempo adquirido, cambio del ‘focus’, clic de un botón o cualquier otro evento que se puede captar en Excel VBA.
El método VBA que permite actualizar una tabla dinámica es [objeto PivotTable].Update. Para actualizar todos las tablas dinámicas en una hoja de cálculo Excel y guardar la fecha y tiempo de última actualización usa este código:Sub actualizar_todos_los_crosstabs() Dim pt As PivotTable Dim i As Integer For i = 1 To Sheets.Count For Each pt In Sheets(i).PivotTables pt.Update ‘fecha y tiempo de ultima actualizacion Sheets(i).Range("a1") = " Ultima actualización: " & Date & " " & Time Next pt Next i End Sub
- la manera mas compleja y avanzada de la actualización de las tablas dinámicas en MS Excel es usar el código Visual Basic Scripting (VBscript - Windows Host Script).
Los códigos VB pueden ser ejecutados desde la línea de órdenes del sistema operativo y este tipo de ficheros tienen una extensión .vbs
El ejemplo abajo permite actualizar todas las tablas dinámicas en una hoja de cálculo indicada en una variable workbookName (nombre de hoja). Será bastante fácil modificar este código así que léase todos los ficheros xls de un directorio y actualice todos los crosstabs en estos ficheros.
Dim excelObject as Object Dim workbookName as String Dim excelFileLocation as String Dim nCntSheets as Integer excelFileLocation = "d:\excel_pivot-tables\" workbookName = "etl-tools_info-crosstab.xls" set shell = createobject("wscript.shell") ' ******************** actualización del fichero Excel ********************** Set excelObject = CreateObject("Excel.Application") 'excelObject.Visible = true ' usa esta opción para dejar la ventana Excel visible ' abrir la hoja excelObject.workbooks.open excelFileLocation & workbookName ' no muestrar las alertas excelObject.Application.DisplayAlerts = False 'na actualiza la pantalla excelObject.Application.ScreenUpdating = False 'contar hojas nCntSheets = excelObject.Workbooks(workbookName).sheets.count ' ejecuta la función actualizar_todos_los_crosstabs() excelObject.Run "refresh_funcs. actualizar_todos_los_crosstabs ()" '****** guardar cambios y cerrar excelObject.Workbooks(workbookName).Save excelObject.Application.Quit '************* flush Excel instance from memory excelObject = Nothing ' message box MsgBox "Todas las hojas actualizadas"
2.2. Modos de Actualización de una tabla dinámica
Modos de actualización de la tabla dinámica Microsoft Excel
Un crosstab MS Excel puede ser actualizado de varios modos: