Saltar al contenido

Como hacer una macro que realice una tabla dinamica


Recommended Posts

publicado

buenas tardes amigos , tengo un problema al realizar una macro que realice una tabla dinamica tengo los siguientes datos.

Nombre Nombre_Concepto Año Mes Valor

MONTES DEL CASTILLO JAIRO ASIGNACION BASICA-SUELDO 2002 1 1225174

MONTES DEL CASTILLO JAIRO AUXILIO DE TRANSPORTE 2002 1 34000

MONTES DEL CASTILLO JAIRO AUXILIO DE ALIMENTACION 2002 1 50848

MONTES DEL CASTILLO JAIRO PRIMA ANTIGUEDAD EMP.PUBL 2002 1 67385

MONTES DEL CASTILLO JAIRO PRIMA TECNICA 2002 1 263412

MONTES DEL CASTILLO JAIRO AJUSTE FONDO SOLIDARIDAD 2002 1 16809

cuando grabo la macro para que me cree la tabla dinamica me genera el siguiente error

agradezco cualquier ayuda para solucionar este problema

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

"A1:B1", Version:=xlPivotTableVersion14).CreatePivotTable _

TableDestination:="C2", TableName:="Tabla dinámica7", _

DefaultVersion:=xlPivotTableVersion14

publicado

Sub CrearTablaDinamica()

Dim WSD1 As Worksheet

Dim WSD2 As Worksheet

Dim PTCache As PivotCache

Dim PT As PivotTable

Dim PRange As Range

Dim FinalRow As Long

Set WSD1 = Worksheets("TablaDinamica")

For Each PT In WSD1.PivotTables

PT.TableRange2.Clear

Next PT

Set WSD2 = Worksheets("DATOS")

FinalRow = WSD2.Cells(Rows.Count, 1).End(xlUp).Row

Set PRange = WSD2.Cells(1, 1).Resize(FinalRow, 7)

Sheets("DATOS").Select

Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address)

Set PT = PTCache.CreatePivotTable(TableDestination:=Worksheets("TablaDinamica").Range("B3"), TableName:="PivotTable3")

PT.Format xlReport6

PT.ManualUpdate = True

PT.AddFields RowFields:=Array("Region", "Producto", "Cliente")

With PT.PivotFields("Cantidad")

.Orientation = xlDataField

.Function = xlSum

.Position = 1

End With

With PT.PivotFields("Ingresos")

.Orientation = xlDataField

.Function = xlSum

.Position = 2

End With

With PT.PivotFields("Costo")

.Orientation = xlDataField

.Function = xlSum

.Position = 3

End With

With PT.PivotFields("Beneficio total")

.Orientation = xlDataField

.Function = xlSum

.Position = 4

End With

PT.ManualUpdate = False

Sheets("TablaDinamica").Select

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.