Error 5. Argumento o llamada a proc no valida
Publicado por Carlos (1 intervención) el 08/10/2022 16:57:35
Buenas! Estoy intentando programar en VBA una tabla dinámica que se realiza sobre una base de unos 170.000 registros. Al ejecutar, me da "Error en tiempo de ejecución 5: llamada a procedimiento o argumento no válido". En la linea que comienza por "Set PT =...". Pongo el codigo que he utilizado para ver si alguien me puede ayudar. Muchas gracias!!
Sub prueba ()
Dim datos as worksheet
Dim tabla as worksheet
Dim PtCache as PivotCache
Dim PT as PivotTable
Dim PRango as Range
Dim FinalRow as long, FinalColumn as Long
Set Datos =Worksheet ("datos origen")
Set tabla = Worksheet ("tabla din")
FinalRow=Datos.cells(rows.count,1).End(xlup).row
FinalColumn = Datos.cells(1,columns.count).end(xltoleft).column
Set PRango = Datos.cells (1,1). Resize(FinalRow,FinalColumn)
Set PtCache= Activeworkbook.PivotCaches.Create(SourceType:=xldatabase, SourceData:= PRango, Version:=XlPivotTableVersion15)
Set PT= Tabla.PivotTables.Add(PivotCache:=PtCache, Tabledestination=cells(4,1), TableName:= "td1")
PT.ManualUpdate=True
With PT.
Pivot Fields ("DNI"). Orientation = XlRowField
Pivot Fields ("Nombre"). Orientation = XlRowField
Pivot Fields ("Importe"). Orientation =XlDataField
End with
PT.ManualUpdate=False
End sub
Sub prueba ()
Dim datos as worksheet
Dim tabla as worksheet
Dim PtCache as PivotCache
Dim PT as PivotTable
Dim PRango as Range
Dim FinalRow as long, FinalColumn as Long
Set Datos =Worksheet ("datos origen")
Set tabla = Worksheet ("tabla din")
FinalRow=Datos.cells(rows.count,1).End(xlup).row
FinalColumn = Datos.cells(1,columns.count).end(xltoleft).column
Set PRango = Datos.cells (1,1). Resize(FinalRow,FinalColumn)
Set PtCache= Activeworkbook.PivotCaches.Create(SourceType:=xldatabase, SourceData:= PRango, Version:=XlPivotTableVersion15)
Set PT= Tabla.PivotTables.Add(PivotCache:=PtCache, Tabledestination=cells(4,1), TableName:= "td1")
PT.ManualUpdate=True
With PT.
Pivot Fields ("DNI"). Orientation = XlRowField
Pivot Fields ("Nombre"). Orientation = XlRowField
Pivot Fields ("Importe"). Orientation =XlDataField
End with
PT.ManualUpdate=False
End sub
Valora esta pregunta


0