You are on page 1of 4

GUIA DE CODIGO EN VISUAL BASIC CREAR TABLAS DINAMICAS Y GRAFICOS Los dos objetos principales que se utilizan para

a crear y manipular tablas dinmicas son las colecciones PivotCaches y PivotTables. PivotCaches es una coleccin de objetos PivotCache en un objeto Workbook. A PivotCache es la memoria cach donde se almacenan los datos utilizados por la tabla dinmica. PivotTables es una coleccin de objetos de tabla dinmica en un objeto de hoja de clculo particular. El primer paso en la creacin de una tabla dinmica es la creacin de la cach correspondiente.

Declaramos una variable de objeto PivotCache mediante la instruccin Dim. Dim MyCache As PivotCache Usamos el mtodo Create () para crear un objeto de cach. Este mtodo tiene tres argumentos: SourceType: especifica si los datos provienen de la hoja de clculo (xlDatabase), una fuente externa (xlExternal) o rangos mltiples (xlConsolidation). SourceData: se utiliza para especificar los datos especficos de este tipo de fuente. Versin: especifica la versin de la tabla dinmica.

Despus de crear el objeto de cach, se utiliza la instruccin Set para asignar el objeto a la variable MyCache. Set MyCache = ActiveWorkbook.PivotCaches.Create(xlDatabase,_ Worksheets(Data_Shipping).Range(B3:E27), xlPivotTableVersion14)

Declaramos una variable de objeto de tabla dinmica mediante la instruccin Dim. Dim MyPT As PivotTable

Usamos el mtodo Add para crear un objeto de tabla dinmica nueva. El mtodo Add tiene tres argumentos: PivotCache: especifica el cache de la tabla. TableDestination: especifica un rango en el que se coloca la tabla. TableName: se utiliza para dar un nombre a la tabla.

Despus de crear un objeto de tabla dinmica nuevo, se utiliza la instruccin Set para asignar este objeto para MyPT variable. Set MyPT = ActiveSheet.PivotTables.Add(MyCache, Range(G3), Pivot Table1)

Usamos la propiedad PivotField.Orientation con el fin de establecer campos de fila, campos de columna, el campo de datos, y el campo de pgina de la tabla dinmica.

Esta propiedad toma los valores xlDataField, xlRowField, xlColumnField y xlPageField para los campos respectivos.

With MyPT .PivotFields("Shipping Companies").Orientation = xlColumnField .PivotFields("Max Weight, lbs").Orientation = xlRowField .PivotFields("Days to Arrive").Orientation = xlRowField .PivotFields("Costs").Orientation = xlDataField End With Uno de los posibles valores de la propiedad Orientation es xlHidden. Esto ocultar todos los valores del campo especificado.

RefreshOnFileOpen Property

El RefreshOnFileOpen es una propiedad de PivotCache que se utiliza con frecuencia. Por ejemplo, para actualizar los datos sobre "Pivot Tabla1" se encuentra en la hoja "Data_Shipping" cada vez que el libro est abierto, se establece el valor de esta propiedad en true, escriba lo siguiente: Worksheets(Data_Shipping).PivotTables(PivotTable1).PivotCashe. RefreshOnFileOpen = True

GRAFICO INCRUSTADO

Aadimos una variable de tipo Shape o forma, son las variables que nos ayudaran a crear los graficos del informe. Son variables del tipo shape por el siguiente motivo, cualquier elemento que insertemos dentro de una hoja es una forma. Los graficos que vamos a crear aparecen dentro de una hoja, por encima de las celdas por lo tanto tambin deben de ser formas. Cuando creemos las formas para los graficos lo que le diremos es que cree formas que son graficos, este es el detalle que debemos tener en cuenta. Si por eje. Los graficos se crearan en hojas individuales, no dentro de una hoja de celdas, habra que hacerlo de diferente manera. Por lo tanto estas variables, igual que las TD, nos ayudan a acceder fcilmente a los graficos para cambiar sus propiedades y caractersticas una vez q han sido creados. Son variables que apuntaran a esos graficos y asi podremos acceder a ellos fcilmente. El trabajo se podra realizar sin estas variables, pero seria mas complicado. Dim Grafico As Shape

TablaResumenUnidades.PivotSelect Name:="" pivotselect permite seleccionar toda una tabla dinamica, TablaResumenUnidades, es una tabla dinamica

Set Grafico = HojaInforme.Shapes.AddChart(xl3DColumnClustered, HojaInforme.Range("G1").Left, 0, 500, 300) If Region = "Global" Then TituloGrafico = "Unidades Producidas en cada Pas" Else TituloGrafico = "Unidades Producidas en " & Region End If With GraficoProduccionUnidades .Chart.HasTitle = True .Chart.ChartTitle.Text = TituloGrafico .Chart.ChartStyle = 34 .Chart.ApplyDataLabels End With

You might also like