Cuando trabaja con fuentes de datos variadas, a menudo puede tener dificultades para compilar varios libros y hojas de trabajo antes de llegar a una pieza de datos final. Imagine una situación en la que tiene unos cientos de libros de trabajo para combinar antes de que pueda comenzar su día.

Nadie quiere pasar horas interminables trabajando en diferentes fuentes, abriendo cada libro de trabajo, copiando y pegando los datos de varias hojas, antes de finalmente crear un libro de trabajo consolidado. ¿Qué sucede si una macro de VBA puede hacer esto por usted?

Con esta guía, puede crear su propio código de macro VBA de Excel para consolidar varios libros de trabajo, todo en cuestión de minutos (si los archivos de datos son muchos).

Requisitos previos para crear su propio código de macro VBA

Necesita un libro de trabajo para albergar el código VBA, mientras que el resto de los libros de trabajo de datos de origen están separados. Además, cree un libro de trabajo Consolidado para almacenar los datos consolidados de todos sus libros de trabajo.

instagram viewer

crear una carpeta Consolidación en su ubicación preferida para almacenar todos sus libros de trabajo de origen. Cuando se ejecuta la macro, alternará entre cada libro de trabajo almacenado en esta carpeta, copiará el contenido de varias hojas y lo colocará en el libro de trabajo consolidado.

Crear su propio código Excel VBA

Una vez que los requisitos previos están fuera del camino, es hora de profundizar en el código y comenzar a modificar los conceptos básicos para adaptarlo a sus requisitos.

Relacionado: Funciones avanzadas de Microsoft Excel que debe conocer

presione el Alt+F11 en Excel para abrir el editor de código de macros de VBA. Pegue el código escrito a continuación y guarde el archivo como un libro de trabajo habilitado para macros (.xlsm extensión).

Archivos abiertos secundarios ()

'declara las variables utilizadas dentro del código VBA

Dim MyFolder como cadena, MyFile como cadena, wbmain como libro de trabajo, lastrow como largo

'deshabilitar estas funciones para mejorar el procesamiento de código

con aplicación
.DisplayAlerts = Falso
.Actualización de pantalla = Falso
Terminar con

'cambia la ruta de la carpeta donde se van a guardar tus archivos

MyFolder = InputBox("Ingrese la ruta de la carpeta de consolidación") & "\"

'define la referencia de la carpeta en una macro variable

MiArchivo = Dir (Mi Carpeta)

'abrir un ciclo para recorrer cada libro de trabajo individual almacenado en la carpeta

Hacer mientras Len (MyFile) > 0

'activar el libro de consolidación

Windows("Consolidación").Activar

'calcular la última fila poblada

Rango("a1048576").Seleccione
Selección. Finalizar (xlUp).Seleccionar
Célula activa. Desplazamiento (1, 0).Seleccione

'abre el primer libro de trabajo dentro de la carpeta Consolidación

Libros de trabajo. Abrir nombre de archivo:=Mi carpeta y Mi archivo

Windows (MiArchivo).Activar

'alternar entre cada hoja dentro de los libros de trabajo para copiar los datos

Dim ws como hoja de trabajo
Para cada ws en hojas

ws. Activar
ws. AutoFilterMode = Falso

'ignorar el encabezado y copiar los datos de la fila 2
Si Celdas (2, 1) = "" Entonces Ir a 1

Ir a 10

1: Siguiente

10: Rango ("a2: az20000"). Copiar

Windows("Consolidación").Activar

'pegar el contenido copiado

Hoja activa. Pegar

Windows (MiArchivo).Activar

'cierra el libro abierto una vez que se pegan los datos

Libro de trabajo activo. Cerca

'vaciar el caché para almacenar el valor del próximo libro de trabajo

MiArchivo = Dir()

'abrir el siguiente archivo en la carpeta

Círculo

'habilitar las funciones deshabilitadas para uso futuro

con aplicación
.DisplayAlerts = Verdadero
.Actualización de pantalla = Verdadero
Terminar con

Finalizar sub

El código VBA explicado

La primera parte del código es definir una subrutina, que contiene todo su código VBA. Defina la subrutina con sub, seguido del nombre del código. El subnombre puede ser cualquier cosa; idealmente, debe mantener un nombre relevante para el código que está a punto de escribir.

Relacionado: Sitios web y blogs para aprender consejos y trucos de Excel

Excel VBA comprende las variables creadas por el usuario y sus tipos de datos correspondientes declarados con oscuro (dimensión).

Para mejorar la velocidad de procesamiento de su código, puede desactivar la actualización de pantalla y suprimir todas las alertas, ya que eso ralentiza la ejecución del código.

Se le solicitará al usuario la ruta de la carpeta donde se almacenan los archivos de datos. Se crea un bucle para abrir cada libro de trabajo almacenado en la carpeta, copiar los datos de cada hoja y adjuntarlos a la carpeta. Consolidación libro de trabajo.

El libro de consolidación se activa para que Excel VBA pueda calcular la última fila poblada. Se selecciona la última celda de la hoja de trabajo y se calcula la última fila dentro del libro de trabajo mediante la función de compensación. Esto es muy útil cuando la macro comienza a agregar datos de los archivos de origen.

A medida que el ciclo abre el primer archivo fuente, los filtros se eliminan de cada hoja (si existen), y los datos que van desde A2 a AZ20000 se copiarán y pegarán en la Consolidación libro de trabajo.

El proceso se repite hasta que todas las hojas del libro de trabajo se anexan dentro del libro de trabajo maestro.

Relacionado: Los mejores cursos en línea para dominar Excel avanzado

Finalmente, el archivo de origen se cierra una vez que se pegan todos los datos. El siguiente libro de trabajo se abre para que la macro de VBA pueda repetir los mismos pasos para el siguiente conjunto de archivos.

El ciclo está codificado para ejecutarse hasta que todos los archivos se actualicen automáticamente en el libro de trabajo maestro.

Personalizaciones basadas en el usuario

A veces, no desea preocuparse por las indicaciones integradas, especialmente si es el usuario final. Si prefiere codificar la ruta de la carpeta de consolidación en el código, puede cambiar esta parte del código:

MyFolder = InputBox("Ingrese la ruta de la carpeta de consolidación") & "\"

A:

MyFolder = "Ruta de la carpeta" & "\"

Además, también puede cambiar las referencias de las columnas, ya que el paso no está incluido en este código. Simplemente reemplace la referencia de la columna final con el último valor de la columna completada (AZ, en este caso). Debe recordar que la última fila poblada se calcula a través del código de macro, por lo que solo debe cambiar la referencia de la columna.

Para aprovechar al máximo esta macro, puede usarla solo para consolidar libros de trabajo en el mismo formato. Si las estructuras son diferentes, no puede usar esta macro de VBA.

Consolidación de varios libros de trabajo mediante la macro VBA de Excel

Crear y modificar un código Excel VBA es relativamente fácil, especialmente si comprende algunos de los matices del código. VBA ejecuta sistemáticamente cada línea de código y la ejecuta línea por línea.

Si realiza algún cambio en el código, debe asegurarse de no cambiar el orden de los códigos, ya que eso interrumpirá la ejecución del código.

5 geniales macros de Microsoft Excel para ordenar datos

Facilite la gestión de datos con estas macros de Excel.

Leer siguiente

CuotaPíoCorreo electrónico
Temas relacionados
  • Programación
  • Programación
  • Microsoft Excel
Sobre el Autor
Gaurav Siyal (19 artículos publicados)

Gaurav Siyal tiene dos años de experiencia en redacción, escribiendo para una serie de firmas de marketing digital y documentos del ciclo de vida del software.

Más de Gaurav Siyal

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse