Tablas dinámicas en macros

Hola amigo, tengo un inconveniente en una macro.
Paso a contarte
Todos los meses corro una macro que toma datos de una planilla excel y los convierte en una tabla dinámica.
La cantidad de registros se incrementa mes a mes y mi macro de tabla dinámica se mantiene siempre invariable en el rango que utiliza.
Para actualizar ese rango debo hacerlo de forma manual y saber que rango debe tomar de ese archivo.
¿Cómo se puede hacer para actualizar ese rango en forma automática cada vez que se procesa la macro?
Este es el detalle de la macro donde muestra el rango a tomar para la tabla dinámica.
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Hoja1!R1C1: (ESTE EL DATO QUE TENGO QUE CAMBIAR TODOS LOS MESES )---------> R2083C5").CreatePivotTable TableDestination:="", TableName:="Tabla dinámica1", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("pep")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Ejercicio SAP")
.Orientation = xlColumnField
.Position = 1
End With
ActiveSheet.PivotTables("Tabla dinámica1").AddDataField ActiveSheet.PivotTables _
("Tabla dinámica1").PivotFields(" Alta"), "Suma de Alta", _
xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
Application.CommandBars("PivotTable").Visible = False
Desde muchísimas gracias por la contestación.
Saludos.
Omar.
Respuesta
1
Puedes usar:
RangoTabla = "MiHoja!R3C1:R" & WorksheetFunction.CountA(Worksheets("MiHoja").Range("A:A")) & "C17"
Te Explico:
MiHoja es el origen de la tabla
R1: Suponiendo que inicie en la fila 1
C1 Suponiendo que inicie en la columna A
R: Para la fila final
WorksheetFunction. CountA(Worksheets("MiHoja"). Range("A:A")) & "C17": Devuelve la ultima fila no vacia de la tabla en la columna A, siempre que la tabla comience en la fila 1, de lo contrario tendras que sumar a este resultado el numero de fila donde inicia la tabla menos 1
C17: Suponiendo que la ultima columna este en C17
Luego pasas RangoTabla como parámetro a la función con que se genera la tabla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas