Hola, tengo un problema al momento de ejecutar una macro que cree un tabla dinamica, en diferentes computadoras.
el codigo es el siguiente:
Sub Macro1()
Dim WSD As Excel.Worksheet
Dim WSI As Excel.Worksheet
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim PRange As Range
Dim FinalRow As Long, FinalCol As Long
Set WSD = Worksheets("Origen")
Set WSI = Worksheets("Indicadores")
' Eliminar cada Tabla Dinamica existente en la Hoja----
For Each PT In WSI.PivotTables
PT.TableRange2.Clear
Next PT
'========================================================================================
FinalRow = WSD.Cells(Application.Rows.Count, 1).End(xlUp).Row
FinalCol = WSD.Cells(1, Application.Columns.Count).End(xlToLeft).Column
Set PRange = WSD.Cells(1, 1).Resize(FinalRow, FinalCol)
'Definimos cache de la TD
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:= _
xlDatabase, SourceData:=PRange)
'Crear la tabla dinámica a partir de la Pivot Cache
Set PT = PTCache.CreatePivotTable(TableDestination:=WSI. _
Cells(4, 1), TableName:="PivotTable1")
'Actualización manual Tabla Dinamica activado mientras construimos la misma
PT.ManualUpdate = True
'<Configurar TD> Configurar fila , columna y filtro
PT.AddFields RowFields:="UNIDAD_SUBSIDIARIA", _
ColumnFields:=Array("TIPO_RIESGO", "Data"), _
PageFields:=Array("REGION_SUSPENSION", "Data")
'****"Data" es necesatio para que los datos aparescan en las columnas
'<Añadimos Campos al Area de Datos> y Configurar los campos de datos añadidos
With PT.PivotFields("NUMERO_AFILIADO")
.Orientation = xlDataField
.Function = xlCount
.Position = 1
.NumberFormat = "#,##0"
.Name = Now()
End With
'Pausa aquí para agrupar fechas diarias de hasta años
'Necesita dibujar la tabla dinámica para que pueda seleccionar el encabezado de la fecha
PT.ManualUpdate = False
PT.ManualUpdate = True
'Formato de tabla dinamica
With PT
.ShowTableStyleColumnStripes = True
.ShowTableStyleRowStripes = True
.TableStyle2 = "PivotStyleMedium2"
' .NullString = "0"
.RowGrand = True
.ColumnGrand = True
.TableRange2.Font.Size = 10
End With
'Actualización manual Tabla Dinamica desactivado
PT.ManualUpdate = False
Hola, tengo un problema al momento de ejecutar una macro que cree un tabla dinamica, en diferentes computadoras.
el codigo es el siguiente:
Sub Macro1()
Dim WSD As Excel.Worksheet
Dim WSI As Excel.Worksheet
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim PRange As Range
Dim FinalRow As Long, FinalCol As Long
Set WSD = Worksheets("Origen")
Set WSI = Worksheets("Indicadores")
' Eliminar cada Tabla Dinamica existente en la Hoja----
For Each PT In WSI.PivotTables
PT.TableRange2.Clear
Next PT
'========================================================================================
FinalRow = WSD.Cells(Application.Rows.Count, 1).End(xlUp).Row
FinalCol = WSD.Cells(1, Application.Columns.Count).End(xlToLeft).Column
Set PRange = WSD.Cells(1, 1).Resize(FinalRow, FinalCol)
'Definimos cache de la TD
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:= _
xlDatabase, SourceData:=PRange)
'Crear la tabla dinámica a partir de la Pivot Cache
Set PT = PTCache.CreatePivotTable(TableDestination:=WSI. _
Cells(4, 1), TableName:="PivotTable1")
'Actualización manual Tabla Dinamica activado mientras construimos la misma
PT.ManualUpdate = True
'<Configurar TD> Configurar fila , columna y filtro
PT.AddFields RowFields:="UNIDAD_SUBSIDIARIA", _
ColumnFields:=Array("TIPO_RIESGO", "Data"), _
PageFields:=Array("REGION_SUSPENSION", "Data")
'****"Data" es necesatio para que los datos aparescan en las columnas
'<Añadimos Campos al Area de Datos> y Configurar los campos de datos añadidos
With PT.PivotFields("NUMERO_AFILIADO")
.Orientation = xlDataField
.Function = xlCount
.Position = 1
.NumberFormat = "#,##0"
.Name = Now()
End With
'Pausa aquí para agrupar fechas diarias de hasta años
'Necesita dibujar la tabla dinámica para que pueda seleccionar el encabezado de la fecha
PT.ManualUpdate = False
PT.ManualUpdate = True
'Formato de tabla dinamica
With PT
.ShowTableStyleColumnStripes = True
.ShowTableStyleRowStripes = True
.TableStyle2 = "PivotStyleMedium2"
' .NullString = "0"
.RowGrand = True
.ColumnGrand = True
.TableRange2.Font.Size = 10
End With
'Actualización manual Tabla Dinamica desactivado
PT.ManualUpdate = False
'========================================================================================
WSI.Activate
Range("A2").Select
MsgBox ("Tabla Dinamica Creada con Exito"), vbInformation, "DiegoP"
End Sub
y al depurar me sale error en la siguiente linea:
Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:= _
xlDatabase, SourceData:=PRange)
alguna ayuda? el error me sale al correr el macro en otra computadora que no es la mia.