Excel VBA es una parte integral de la automatización de Excel, y el uso y los beneficios de VBA no se pueden socavar. Si se encuentra en una batalla cuesta arriba tratando de consolidar varias hojas y libros de trabajo en Excel, estamos aquí para ayudarlo.

Las macros mencionadas en esta guía lo ayudarán a lograr la tarea aparentemente insuperable en cuestión de segundos (o minutos, si los activos de datos son grandes).

Al seguir este tutorial, creará su propia macro de VBA en Excel y combinará de manera eficiente varias hojas en un solo archivo.

Combinar varias hojas de Excel en un solo archivo

Para esta tarea, los datos se almacenan en las siguientes hojas:

  • Hoja1
  • Hoja2
  • Hoja3

Los nombres de las hojas enumerados anteriormente son solo para fines ilustrativos. Esta macro de VBA es genérica y no depende de los nombres de las hojas; puede personalizar el código para usarlo con cualquier nombre de hoja (s).

Requisitos previos para ejecutar el código

Hay algunos requisitos previos para ejecutar el código VBA que se enumeran a continuación.

instagram viewer

Debe almacenar el código de la macro en un nuevo archivo de Excel. Guarde este libro con un .xlsm extensión. Puede guardar el libro de macros de VBA con cualquier nombre.

Abra un nuevo archivo de Excel; imprenta Alt+F11 en su teclado para abrir el editor Excel VBA. Una vez que se abra el editor, agregue un nuevo módulo de código haciendo clic en el Insertar pestaña en la parte superior. Seleccione Módulo para insertar un nuevo módulo; aquí es donde ingresará el código de macro de VBA que se proporciona a continuación.

Las hojas de datos que se consolidarán deben estar en otro libro de trabajo por separado. El nombre del libro de trabajo y las hojas puede ser el que elija.

Tan pronto como ejecute el código de VBA, la macro de VBA recorrerá cada hoja de trabajo disponible en el libro de trabajo principal (libro de trabajo de datos) y pegue el contenido en una hoja recién agregada dentro del mismo libro de trabajo.

Los datos consolidados estarán disponibles en la hoja denominada Consolidado.

Ejecutando el código VBA

Es hora de ejecutar el código de macro recién guardado. Copie y pegue este código en el módulo del editor de VBA:

Subconsolidar_shts()
'declara las diversas variables utilizadas dentro del código y los tipos de datos vba
Dim sht como hoja de trabajo, sht1 como hoja de trabajo, lastrow como entero, lastrow1 como entero
'deshabilitar el parpadeo de la pantalla y las ventanas emergentes de alerta durante la ejecución
con aplicación
.Actualización de pantalla = Falso
.DisplayAlerts = Falso
Terminar con
'almacena el nombre del libro de trabajo principal en la variable macro. Reemplace Test.xlsx con el nombre de su libro de trabajo principal
Establecer wbk1 = Libros de trabajo ("Prueba.xlsx")
'activar el libro de trabajo antes de realizar la(s) función(es) en él
wbk1.Activar
'ejecuta un vba for loop para verificar si ya existe una hoja consolidada. Si existe, el bucle for lo eliminará.
Para cada sht en wbk1.Sheets
Si mierda. Nombre = "Consolidado" Entonces sht. Borrar
siguiente mierda
'Agregar una nueva hoja para almacenar los datos recién consolidados
Hojas de trabajo. Agregar. Nombre = "Consolidado"
'Agregue algunos encabezados a cada columna individual dentro de la hoja consolidada
Con Hojas ("Consolidado")
.Rango("a1").Valor = "FechaPedido"
.Rango("b1").Valor = "Región"
.Rango("c1").Valor = "Representante"
.Rango("d1").Valor = "Artículo"
.Rango("e1").Valor = "Unidades"
.Rango("f1").Valor = "CosteUnitario"
.Rango("g1").Valor = "Total"

Terminar con
'La hoja consolidada recién creada contendrá los datos consolidados de cada hoja individual en el libro de trabajo principal

Para i = 1 Para wbk1.Hojas de trabajo. Contar
Si Hojas (i).Nombre <> "Consolidado" Entonces
'Capturar la última fila poblada de las hojas de datos en el libro de trabajo
últimafila = Hojas (i).Rango("a1").End (xlDown).Row
'Capturar la última fila poblada en la hoja consolidada
lastrow1 = wbk1.Sheets("Consolidated").Range("a1048576").End (xlUp).Row + 1

'Copiar datos de la hoja de origen y pegarlos en la hoja consolidada
Hojas (i).Rango("a2:g" y última fila).Copiar destino:=Hojas("Consolidado").Rango("a" y últimafila1)
Terminara si
Siguiente yo
'Habilitar las funciones de Excel VBA para uso futuro
con aplicación
.Actualización de pantalla = Verdadero
.DisplayAlerts = Verdadero
Terminar con

Finalizar sub

El código VBA explicado

Primero, declare todas las variables que está usando dentro del código y asígneles los tipos de datos de VBA correctos para que el código se ejecute sin problemas.

Una vez que declaras las variables, se necesita un poco de limpieza básica. Esto se hace deshabilitando el parpadeo de la pantalla y suprimiendo las alertas emergentes. Por ejemplo, cuando elimina una hoja existente usando el código VBA, un aviso dentro de Excel solicita confirmación antes de eliminar la hoja. Indicaciones como esta se suprimen para mejorar la velocidad de ejecución.

En el siguiente paso, debe definir el nombre del libro de trabajo, que contiene todos sus datos. Reemplazar Prueba.xlsx con el nombre y la extensión del nombre de su libro de trabajo. Asegúrate de rodear el nombre con comillas.

Active el libro de trabajo principal y elimine las hojas existentes con el nombre Consolidado para eliminar cualquier dato previamente almacenado. El código de VBA alterna entre cada hoja, y tan pronto como encuentra el nombre de la hoja Consolidado lo borrará. Esto se hace usando el Declaración VBA IF, que verifica las condiciones lógicas y elimina la hoja tan pronto como se cumple la condición.

Se agrega una hoja nueva al libro de trabajo principal para almacenar los datos consolidados. Posteriormente, se agregan a esta hoja encabezados estandarizados y con formato previo. Puede cambiar los valores de los títulos (encabezados de columna) actualizando la información junto a las referencias de celda entre comillas.

Por ejemplo: .Rango(“a1”) = “FechaPedido” se puede reemplazar con .Rango(“a1”) = “NúmeroPedido”

A continuación, un bucle VBA FOR alterna entre cada hoja de trabajo, copia el contenido de la hoja y pega el contenido en el Consolidado hoja de trabajo antes de pasar a la siguiente hoja en el libro de trabajo. Este proceso se repite hasta que se copian todas las hojas.

Durante este proceso, todas las filas se calculan automáticamente y se pegan en la hoja Consolidada. La última fila completa se calcula automáticamente antes de que se peguen los datos. La macro es dinámica y puede ajustarse a diferentes filas de datos dentro de cada hoja de cálculo.

Relacionado: Funciones avanzadas de Microsoft Excel que debe conocer

Una vez que los datos de todas las hojas se pegan en la hoja de consolidación principal, la macro pasa al tramo final del código. Las funciones de VBA inicialmente deshabilitadas se habilitan nuevamente para uso futuro.

Consolidación de varias hojas con la macro VBA de Excel

Excel VBA es un lenguaje de programación superfluo que funciona bien con todos los componentes de Excel. Cada fragmento de código es esencial y es importante recordar que la ejecución depende de un sistema de ejecución línea por línea, por lo que no debe cambiar el orden de las líneas de código.

Para personalizar el código según sus requisitos, puede realizar los cambios necesarios y ejecutar este código para consolidar los datos de manera eficiente y efectiva en segundos.

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
  • Microsoft Excel
  • macros
  • Programación
Sobre el Autor
Gaurav Siyal (21 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 para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse