Excel - Crear Tabla dinámica con formulario VBA

 
Vista:
sin imagen de perfil
Val: 6
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Crear Tabla dinámica con formulario VBA

Publicado por Luis (15 intervenciones) el 07/11/2017 16:45:57
Estimados,
Muy buenas tardes. Agradecería me pudieran ayudar. Tengo una macro que crea una hoja "Reporte" e inserta una tabla dinámica en base a la hoja seleccionada en un formulario. El caso es que no me inserta la tabla y no logro detectar el problema.
Saludos y espero me puedan ayudar. Gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Crear Tabla dinámica con formulario VBA

Publicado por JuanC (1237 intervenciones) el 07/11/2017 18:07:17
con algunos cambios debería andar...
1
2
3
4
5
Dim ws As Worksheet
Set ws = Worksheets.Add(Before:=ActiveSheet)
ws.Name = "Reporte"
Set PT = ws.PivotTables.Add(PivotCache:=PTCache, _
    TableDestination:=ws.Range("A1"), TableName:="nuevo")

PD: para depurar y ver dónde está el error colocá
On Error Goto 0
después de
Worksheets("Reporte").Delete
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 6
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Crear Tabla dinámica con formulario VBA

Publicado por Luis (15 intervenciones) el 07/11/2017 19:04:48
Muchas gracias por la pronta respuesta, pero sigue sin funcionar. Me crea la hoja Reporte, pero no crea la tabla dinámica. Quizá no realicé correctamente las modificaciones. Muchas gracias!!!!!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim PTCache As PivotCache
Dim PT As PivotTable
Dim ws As Worksheet
    On Error Resume Next
    Worksheets("Reporte").Delete
Set ws = Worksheets.Add(Before:=ActiveSheet)
ws.Name = "Reporte"
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
Set PTCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=ActiveSheet.Range("a4:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address))
    '****Worksheets.Add(Before:=ActiveSheet).Name = "Reporte"
Set PT = ws.PivotTables.Add(PivotCache:=PTCache, _
   TableDestination:=ws.Range("A1"), TableName:="nuevo")
'****Set PT = ActiveSheet.PivotTables.Add(PivotCache:=PTCache, _
    TableDestination:="Reporte!A1", TableName:="nuevo")
With PT
    .PivotFields("ÁREA").Orientation = xlColumnField
    .PivotFields("Moneda").Orientation = xlRowField
    .PivotFields("Identifier").Orientation = xlRowField
    .PivotFields("Monto").Orientation = xlDataField
    .DisplayFieldCaptions = False
End With
Unload frmhojas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Crear Tabla dinámica con formulario VBA

Publicado por JuanC (1237 intervenciones) el 07/11/2017 21:06:04
produce error en
.PivotFields("ÁREA").Orientation
pero no sé si es por la versión de excel o algo está mal...

¿probaste usando la gabadora de macros?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 6
Ha aumentado 1 puesto en Excel (en relación al último mes)
Gráfica de Excel

Crear Tabla dinámica con formulario VBA

Publicado por Luis (15 intervenciones) el 07/11/2017 21:46:41
Estimado, el error estaba en la definición de los rangos de entrada, Adjunto planilla con código corregido por si le ayuda a más personas. Muchas gracias por su apoyo, ya que no soy muy bueno en esto, pero estoy en proceso de aprender.
Saludos a todos!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar