Macro grabada que crea tabla dinámica

He intentado grabar en excel una macro que crea una tabla dinámica de una base de datos en el mismo excel pero al ejecutarla manda el error 5 en tiempo de ejecución SIEMPRE, ya busque en la página de Microsoft donde dicen como retocar el código para que se ejecute correctamente pero no sirve de nada la solución que presentan, este es el código generado por Excel al grabar la macro:
Sub Macro3()
'
' Macro3 Macro
' tabla
'
' Acceso directo: CTRL+t
'
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Hoja1!F2C1:F1500C2", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Hoja2!F1C1", TableName:="Tabla dinámica3", _
DefaultVersion:=xlPivotTableVersion12

Sheets("Hoja2").Select
Cells(1, 1).Select
With ActiveSheet.PivotTables("Tabla dinámica3").PivotFields("COD")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tabla dinámica3").AddDataField ActiveSheet.PivotTables _
("Tabla dinámica3").PivotFields("PZAS"), "Cuenta de PZAS", xlCount
With ActiveSheet.PivotTables("Tabla dinámica3").PivotFields("Cuenta de PZAS")
.Caption = "Suma de PZAS"
.Function = xlSum
End With
End Sub
Lo que esta en negritas es lo que marca como error
¿Alguien puede ayudarme a solucionarlo?

1 Respuesta

Respuesta
1
El error se produce porque no identifica el origen de los datos. Coloca una instrucción antes del error que active la hoja que contiene los datos. Por ejemplo:
Sheets("Hoja2").Select
Ya le puse esa linea pero aun así marca el error...
Option Explicit
Sub Macro11()
'
' Macro11 Macro
' tabla
'
' Acceso directo: Ctrl+Mayús+T
'
Sheets("Hoja2").Select
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Hoja1!F1C1:F1500C2", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Hoja2!F1C1", TableName:="Tabla dinámica1", _
DefaultVersion:=xlPivotTableVersion12

Sheets("Hoja2").Select
Cells(1, 1).Select
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("cod")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tabla dinámica1").AddDataField ActiveSheet.PivotTables _
("Tabla dinámica1").PivotFields("pzas"), "Cuenta de pzas", xlCount
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Cuenta de pzas")
.Caption = "Suma de pzas"
.Function = xlSum
End With
End Sub
Donde dice "Hoja2" debes colocar el nombre de la hoja que contiene los datos.
Pues no, sigue sin funcionar, el error no lo marca en donde me dicen, lo marca justamente donde esta con negritas, de todos modos gracias, ojala alguien pueda solucionarlo
Si me envías la hoja le doy un vistazo. Mi dirección es [email protected]
Coloca en el subject "Hoja Macro a Solucionar"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas