Es muy común diseñar nuevas plantillas Excel partiendo de informes que ya han sido generados por Datacycle Reporting ya que como su estructura de campos y/o tabla dinámica es similar, se vacían de contenido y se toman como base de la nueva plantilla.
Esta práctica tiene un único inconveniente si el informe contiene tablas dinámicas.
Una tabla dinámica de Excel crea una copia oculta (cache) de los datos fuente, de manera, que si en algún momento una tabla dinámica ha estado vinculada a un rango de datos con registros, aunque el rango de datos ahora esté vacio, porque es una plantilla, la tabla dinámica, si desplegamos el contenido de cualquier campo de columna, seguirá mostrando estos registros. Este comportamiento en las tablas dinámicas de Excel, según Microsoft, permite calcular rápidamente una tabla dinámica y al mismo tiempo mantener la integridad de los datos originales.
Hay que tener cuidado ya que si tenemos fórmulas en nuestro informe de tipo ImportarDatosDinamicos que obtienen datos de esta tabla dinámica, pueden estar mostrando información incorrecta.
Para evitar futuros problemas tenemos varias opciones:
1. Diseñar plantillas nuevas partiendo de plantillas distribuidas e instaladas por DataCyle Reporting.
2. Ejecutar una macro que permita inicializar la caché de las tabla dinámicas presentes en el libro. En este caso, esta macro debe ser ejecutada desde el editor de visual basic de la plantillas. (Recomendado para versiones anteriores a 2007)
El código VBA es el siguiente:
Sub ClearPTCache()
Dim pvtTable As PivotTable
Dim i As Integer
For i = 1 To ActiveWorkbook.Sheets.Count
For Each pvtTable In Worksheets(i).PivotTables
pvtTable.PivotCache.MissingItemsLimit = xlMissingItemsNone
pvtTable.PivotCache.Refresh
Next pvtTable
Next i
End Sub
3. Para versiones de Excel 2007 o superiores tenemos la opción de configurar los datos que guarda en caché la tabla dinámica. Solo tenemos que acceder a las opciones de la tabla dinámica (botón derecho -> opciones de tabla dinámica) y en la pestaña de datos configuramos el Número de elementos que desea conservar por campo: Ninguno. Aceptar para guardar los cambios y actualizar la tabla dinámica para actualizar el caché. De esta forma no se guardarán datos inexistentes en la memoria de la tabla dinámica.
Válido para versiones Excel 2003, Excel 2007 y Excel 2010
2 Comentarios