Saltar al contenido

Duda: vba tabla dinámica con rangos en diversas hojas


Recommended Posts

publicado

Hola,

Estoy iniciándome en VBA y tengo una tarea cruzada.

Necesito generar una tabla dinámica en base a datos que proceden de rangos de diversas hojas.

Quiero generar la Tabla dinámica en una hoja (TD), cuyos rangos (hoja1,hoja2,hoja3) de por sí, empiezan siempre en la Celda B2, pero no siempre tiene el mismo tamaño de filas.

Me gustaría hacer una iteración para no tener que incluir el nombre de las hojas de rango (x,z,y) ya que el número de rangos se iran incrementando con el paso del tiempo.

Me preocupa el Array, no sé cómo optimizarlo para que me lea los datos de todas las hojas y los imprima en la TD.

SourceData:= _

Array(Array("Hoja1!R1C2:R7C3", "Element1"), Array("Hoja2!R1C2:R698C3", _

"Element2"), Array("Hoja3!R1C2:R9C3", "Element3))

Tras grabar, la macro, la he ido retocando y esto es lo que tengo actualmente:

Sub Makro1()

Dim TD As PivotTable

Dim Data As Worksheet

Dim PFolie As Worksheet

Dim src As Range

Dim i As Integer

Set PFolie = Worksheets("Hoja")

For i = 3 To 6

Set Data = Worksheets(i)

Set src = Data.Range("B1:C200")

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _

src, Version:=xlPivotTableVersion10).CreatePivotTable _

TableDestination:=PFolie.Range("A1"), TableName:="PivotTable1", DefaultVersion _

:=xlPivotTableVersion10

Next

End Sub

Estaría muy agradecido si alguien me pudiera ayudar con al iteración y la automatización de los rangos.

Gracias!

  • 3 weeks later...
publicado

mira las reglas del foro antes de publicar, debes subir un archivo,

para dimensionar la cantidad de registros utiliza la funcion contar para cada hoja

Sub a()

limitehoja = Application.WorksheetFunction.CountA(Range("A:A"))

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.