Tabla dinamica que se adapte a nuevas fuentes de datos.

Actualmente estoy realizando un Macro que permita actualizar una tabla dinamica cuando existan modificaciones en los datos de la tabla de origen. Hasta el momento, cuando agrego o quito alguna fila o columna de mi tabla de origen, la tabla dinamica se adapta a los nuevos cambios (haciendo click en actualizar), sin embargo cuando cambio toda la tabla de origen, la tabla dinamica no se adapta a los cambios y entonces tengo un error.

Para ser mas claro, todas las noches, alguien cambia la tabla de origen antigua por una mas reciente, en ese caso, mi macro no sabe como adaptarse a la nueva tabla. ¿Es qué alguien puede darme alguna idea de como hacerlo?

1 respuesta

Respuesta

Presupongo que tu origen de datos es una Tabla (con un nombre y su funcionalidad completa), y preferiblemente es la única Tabla de la Hoja, si es el caso, entonces para referirte a esa Tabla (se llame como se llame):

NombreTabla = ActiveSheet.ListObjects(1).Name

Es decir, defines una variable para obtener el nombre de la Tabla, que luego podrás emplear para generar o refrescar tu Tabla dinámica

O también, sin considerar la Tabla

Range("A1").CurrentRegion.Select

Suponiendo el Origen de datos comienza en A1

Espero te oriente

Muchas gracias por tu respuesta, me ha dado algunas ideas, sin embargo quisiera preguntarte, Si la tabla se encuentra en una región (origen) de datos especificas, es decir, el tamaño de mi tabla variara pero la primera celda de mi tabla siempre estará en la celda A22, puedo utilizar

Range("A22").CurrentRegion.Select?

Gracias

Olvide comentarte en mi hoja existen varias tablas, pero solo estoy interesado en realizar una tabla dinámica a partir de una tabla especifica.

Correcto, puedes emplear

Range("A22").CurrentRegion.Select 

Si A22 es una celda del Origen o Tabla (no tiene por que ser la superior izquierda... pero es lo más cómodo para identificarla..

O de la otra forma

NombreTabla = ActiveSheet.ListObjects(1).Name

En lugar de 1, identifica la tabla que te interesa (podría se 1,2,3, etc)

Slds

Voy a intentarlo y luego le aviso.

Muchas gracias

¿Cómo puedo identificar la tabla que me interesa? ¿LE asigno un nombre? O es que automáticamente cada tabla posee un identificador por defecto.

Gracias

Cada Tabla tiene su propio Nombre.. lo puedes ver en las Herramientas de Tabla, en el grupo Propiedades (a la izquierda).

Me sorprende que intentes trabajar con macros cuando desconoces aspectos básicos del estándar de la hoja cálculo

De hecho, si trabajas con Tablas, puedes asociar (sin macros) tu Tabla dinámica a esa Tabla, y cualquier modificación que realices en dicha tabla (+/- columnas o +/- filas o registros) se verán reflejadas en tu TD...

Gracias por tu respuesta. Efectivamente no tengo muchos conocimientos en macro, hace apenas 3 semanas que comencé para intentar adelantar una tarea repetitiva que mi jefe me esta pidiendo.

Quiero aclarar que ya intente utilizar algunas funciones como DESREF o DECALER pero el problema es que todas las noches la tabla que me interesa es eliminada y asignan una nueva. En este caso, las funciones DESREF y DECALER presentan problemas.

Gracias

Perfecto...

Recuerda, entonces, mi último comentario:

'De hecho, si trabajas con Tablas, puedes asociar (sin macros) tu Tabla dinámica a esa Tabla, y cualquier modificación que realices en dicha tabla (+/- columnas o +/- filas o registros) se verán reflejadas en tu TD...'

Por favor, cierra y valora la pregunta si ya se solucionó tu primera duda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas