MACRO TABLA DINAMICA

21/12/2005 - 20:41 por Marvin | Informe spam
Que tal grupo,

Como puedo indicar dentro de una instrcción de una macro para la creación de
una TABLA DINAMICA que mi rango de datos es variable

El numero de filas que deseo pasar a una tabla dinamica nunca son iguales,
los campos si, como puedo especificar dentro del codigo para la tabla que
tome los datos hasta donde existan. ME EXPLICO??, este es mi codigo

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Hoja1!R1C1:R1359C17").CreatePivotTable TableDestination:="",
TableName:= _
"Tabla dinámica3", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Tabla dinámica3").PivotFields("compañía")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tabla dinámica3").AddDataField
ActiveSheet.PivotTables _
("Tabla dinámica3").PivotFields("SRINT"), "Suma de SRINT", xlSum

EL RANGO QUE ESTA TOMANDO ES FIJO, COMO PUEDO REEMPLAZAR ESTE RANGO POR UNO
QUE TOME EL RANGO QUE SEA

..."Hoja1!R1C1:R1359C17")...

GRACIAS
 

Leer las respuestas

#1 KL
21/12/2005 - 21:54 | Informe spam
Hola Marvin,

No he hecho pruebas con el codigo que te pongo abajo (me ha dado pereza a la hora de reconstruir la tabla), pero igual te funciona y
si no, te dara las pistas necesarias :-)

Saludos,
KL


Sub test()
Dim miRango As String, NombreTD As String
NombreTD = "Tabla dinámica3"
With ActiveWorkbook
With .Worksheets("Hoja1")
miRango = .Range(.Cells(1, 1), _
.Cells(.Rows.Count, 1).End(xlUp)).Resize(, 17) _
.Address(, , , True)
End With
.PivotCaches.Add(xlDatabase, miRango) _
.CreatePivotTable _
TableDestination:=ActiveSheet.Cells(3, 1), _
TableName:=NombreTD

With .ActiveSheet
With .PivotTables(NombreTD).PivotFields("compañía")
.Orientation = xlRowField
.Position = 1
.AddDataField _
.PivotFields ("SRINT"), _
"Suma de SRINT", _
xlSum
End With
End With
End With
End Sub

Preguntas similares