Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Tabla dinámica con macros sobre exportaciones de palta en el Perú

| 1 comentario

tabla dinamica exportaciones de palta

Las tablas dinámicas son una herramienta fundamental para el manejo de gran cantidad de información, poder agrupar los datos de una manera oportuna a través de filtros, con la finalidad de tener los resultados deseados.

Entonces, aplicar macros resulta fundamental si se pretende utilizar la tabla dinámica por un largo periodo de tiempo, así con la programación en visual basic automatizamos los procesos evitando crear las tablas dinámicas manualmente de la manera convencional.

En el aplicativo usaremos visual basic para la creación de una tabla dinámica que refleje las exportaciones de paltas del Perú a los diferentes destinos mundiales, así como las principales empresas exportadoras  a lo largo del periodo 2007-2012.

Se mostrarán los valores fob en dólares y las cantidades en kg exportadas hacia los diferentes destinos, en los distintos años y por diferentes empresas.

Este aplicativo es de suma importancia en los estudios económicos ( en especial de mercados), donde  el análisis de la demanda externa por los productos agrícolas peruanos es fundamental, siendo la palta un producto dinámico en los últimos años, pues las exportaciones han aumentado considerablemente hacia Estados Unidos y Europa.

Los campos año, país y exportador permiten desplegar otras opciones y contienen los filtros para realizar diferentes combinaciones

imagen td11 300x225 Tabla dinámica con macros sobre exportaciones de palta en el Perú

(Para mayor visualización de la imagen, hacer click en la misma)

 

Los datos que se mostrarán para las diferentes combinaciones son el valor fob (en USD$) y las cantidades (en Kg)

imagen td2 300x225 Tabla dinámica con macros sobre exportaciones de palta en el Perú

(Para mayor visualización de la imagen, hacer click en la misma)

Finalmente se aplica la macro filtro que da la opción de solamente mostrar los datos del 2012, si es que queremos analizar el avance de las exportaciones de plata en el presente año.

Así

Sub filtro ()
With ActiveSheet.PivotTables("PivotTablepalta").PivotFields("año")
.PivotItems("2007").Visible = False
.PivotItems("2008").Visible = False
.PivotItems("2009").Visible = False
.PivotItems("2010").Visible = False
.PivotItems("2011").Visible = False
.PivotItems("2012").Visible = True
End With

End Sub

Los comandos para la creación de la tabla dinámica son:

Sub CrearTabla()
Dim Hoja1 As Worksheet
Dim Hoja2 As Worksheet
Dim TDCache As PivotCache
Dim TD As PivotTable
Dim PRange As Range
Dim FinalRow As Long
Set Hoja1 = Worksheets("tabladinamica")
For Each TD In Hoja1.PivotTables
TD.TableRange2.Clear
Next TD
Set Hoja2 = Worksheets("bd")
FinalRow = Hoja2.Cells(Rows.Count, 1).End(xlUp).Row
Set PRange = Hoja2.Cells(1, 1).Resize(FinalRow, 17)
Sheets("bd").Select
Set TDCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address)
Set TD = TDCache.CreatePivotTable(TableDestination:=Worksheets("tabladinamica").Range("B3"), TableName:="PivotTablepalta")
TD.Format xlReport10
TD.ManualUpdate = True
TD.AddFields RowFields:=Array("año", "PAIS_DESC", "EXPORTADOR")
With TD.PivotFields("UNID_FIQTY")
.Orientation = xlDataField
.Function = xlSum
.Position = 1
.NumberFormat = "#,##0"
.Name = "Cantidad Fisica en Kg"
End With
With TD.PivotFields("Valor FOB en US$")
.Orientation = xlDataField
.Function = xlSum
.Position = 2
.NumberFormat = "#,##0"
End With
TD.ManualUpdate = False
Sheets("tabladinamica").Select
End Sub

 

 Elaborado por:  Muchin Bazan Ruiz

Un comentario

  1. Hola Fernando Santos

    Estimado por favor podrias ayudarme a realizar una formula VBA para imprimir solo una tabla dinamica en excel, y que al ser impresa ocupe todo lo espcacio de la hoja.

    El fin de esto es que cuando quiera imprimir, lo ejecute presionando un boton de formulario o grafico, y asi me saque la impresion deseada.

    Slds y gracias de antemano.

Deja una respuesta

Los campos requeridos estan marcados con *.