-
Cómo cambiar la fuente de una tabla dinámica de Excel con VBA
-
Microsoft Excel es una aplicación de hoja de cálculo. Una característica de este programa es que se puede utilizar sus hojas de trabajo para almacenar datos de manera similar a la forma en que lo haría en una base de datos y luego hacer referencia a ella en las pantallas gráficas dinámicas. Hay dos tipos de pantallas que puede utilizar: tablas dinámicas y gráficos dinámicos. Tablas dinámicas se pueden utilizar para ordenar, filtrar y resumir los datos. La única manera de cambiar la fuente de datos utilizada por una tabla dinámica, una vez que se ha creado a través del asistente es actualizar desde el código VBA en el fondo.Instrucciones
1 Crear un objeto de tabla dinámica en VBA para que pueda actualizar el origen. Copia el código de abajo y lo puso en su macro o función.
Dim ptMyPivotTable Como tabla dinámica
2 Conectar el objeto de tabla dinámica con su tabla dinámica real. Copia el código de abajo.
Establecer ptMyPivotTable = ActiveSheet.PivotTables (1)
3 Actualizar la propiedad SourceData de su objeto de tabla dinámica a los nuevos valores. Puede hacerlo copiando el código VBA proporcionado. Sustituir el rango de datos deseado en lugar de "A1" en el ejemplo.
ptMyPivotTable.SourceData = Range ( "A1"). CurrentRegion.Address (Cierto, cierto, xlR1C1, True)
Para hacer referencia a un rango en una hoja diferente, puede utilizar el siguiente código.
ptMyPivotTable.SourceData = Sheets ( "mySheetName"). [A1] .CurrentRegion.Address (Cierto, cierto, xlR1C1, True)
4 Actualizar los datos que se visualizan realmente en su tabla dinámica mediante el comando de VBA a continuación.
ptMyPivotTable.RefreshTable
5 Liberar los recursos que utilizó en su objeto de tabla dinámica definiéndola como igual a nada.
Establecer ptMyPivotTable = Nada
Consejos y advertencias
- Puede hacer que los datos de la tabla dinámica se actualizan cada vez que cambien los datos reales. Para ello acaba de establecer la hoja de cálculo para calcular automáticamente y añadir el comando RefreshTable a la función Worksheet_Calculate. Vea el enlace en la sección Recursos para obtener más detalles.