Macro para Crear Una Tabla Dinámica en Excel
Macro para Crear Una Tabla Dinámica en Excel
dinmica en Excel
Si eres una persona que crea constantemente tablas dinmicas para el anlisis
de datos, es altamente recomendable utilizar una macro para automatizar la
creacin de una tabla dinmica de manera que puedas mejorar tu productividad
en Excel.
La creacin y manipulacin de una tabla dinmica desde cdigo VBA es un
tema que puede ser muy extenso, as que es necesario determinar el alcance
para este artculo. Al final de nuestro ejercicio sabrs cmo crear una tabla
dinmica en una nueva hoja de Excel, cuyos datos de origen se encuentren en
una tabla de Excel.
He dividido el proceso en varios pasos de manera que sea ms fcil explicar el
desarrollo de la macro:
Insertar una nueva hoja de Excel
Crear el Pivot Cache
Crear la Tabla Dinmica en blanco
Insertar columnas a la tabla dinmica
Insertar filas a la tabla dinmica
Insertar valores a la tabla dinmica
La siguiente imagen muestra la tabla que utilizar como los datos de origen
para la tabla dinmica.
La tabla tiene el nombre Tabla1 y est en la hoja Datos. Dicha tabla tiene ms
de 30 mil registros y la utilizaremos para crear un reporte que me permitir
visualizar rpidamente las ventas por cada una de las zonas en los diferentes
meses del ao.
La macro se llamar CrearTablaDinamica y colocar su cdigo en un nuevo
mdulo que he creado para ese propsito:
'Insertar columnas
With TDinamica.PivotFields("Zona")
.Orientation = xlColumnField
.Position = 1
End With
La diferencia entre una columna y una fila dentro de la tabla dinmica lo hace el
valor de la propiedadOrientation que para una columna deber
ser xlColumnField.
'Insertar filas
With TDinamica.PivotFields("Ao")
.Orientation = xlRowField
.Position = 1
End With
With TDinamica.PivotFields("Mes")
.Orientation = xlRowField
.Position = 2
End With
Lo nico que falta en nuestra tabla dinmica son los valores y tambin los
podemos insertar con el mtodoPivotFields pero debemos cambiar el valor de la
propiedad Orientation para que su valor sea xlDataField.
Adems, podemos indicar algunas propiedades adicionales como la
propiedad Function que nos ayudar a indicar el tipo de clculo que ser
aplicado a los valores de la tabla dinmica. Para nuestro ejemplo, utilizaremos
la suma indicada por el valor xlSum.
1
2
3
4
5
6
7
'Insertar Valores
With TDinamica.PivotFields("Monto")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0"
End With
Este ejemplo nos ha ayudado a crear una tabla dinmica con cdigo VBA. Te
sugiero descargar el archivo de trabajo donde encontrars el cdigo completo