Curso Excel VBA y Macros – Cap. 27 – Práctica: Agrupar tablas de varias hojas en una sola
En este video tutorial veremos un caso práctico donde repasaremos algunos temas que hemos visto en este curso de macros.
Veremos cómo agrupar o consolidar varias tablas o rangos de datos que tenemos en variar hojas, en una sola. Lo interesante de la macro es que recorrerá todas las hojas del archivo y tomará los datos para agruparlos en una hoja.
Ver video Capítulo 27 Excel VBA & Macros
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Caso práctico Consolidar hojas en una sola
Para poder agrupar los datos varias hojas en una sola, debemos tener los mismos encabezados en todas las hojas para garantizar que la hoja concentradora no tenga columnas de más.
La macro recorrerá cada una de las hojas y tomará los datos para luego pegarlos en la primera hoja, donde se concentrarán los datos.
También la macro puede omitir hojas que cumplan con un nombre para omitir el contenido y no copiar nada contenido en esa hoja.
Temas tratados
En este video tutorial repasaremos los siguientes temas:
- Tipos de variables.
- Función MsgBox.
- Instrucción If…Then…Else.
- Agregar hojas.
- Copiar celdas.
- Guardar valores en variables.
- Ciclo For…Next.
- Cambiar nombre de hoja.
- Autoajustar tamaño de columnas.
Código VBA de las macros
Option Explicit Sub AgruparHojas() Dim Cuenta As Integer Dim i As Integer Dim j As Integer Dim MsgContinuar As Boolean MsgContinuar = MsgBox("Se agruparán las tablas de igual estructura." + _ vbNewLine + vbNewLine + "Desea continuar?", vbYesNo + vbQuestion, "EXCELeINFO") If MsgContinuar = vbNo Then Exit Sub ActiveWorkbook.Sheets.Add Before:=Sheets(1) Sheets(2).Range("A1:G1").Copy Sheets(1).Range("A1") Sheets(1).Range("A2").Select Cuenta = Sheets.Count For i = 2 To Cuenta If Sheets(i).Name <> "EXCELeINFO" Then Sheets(i).Activate Sheets(i).Range("A2").Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets(1).Activate ActiveSheet.Paste Selection.End(xlDown).Select Selection.Offset(1, 0).Select Else 'Nada End If Next i Application.CutCopyMode = False Call ActivarA2 Sheets(1).Name = "Concentrado" End Sub Sub ActivarA2() Dim j As Integer For j = 1 To Sheets.Count Sheets(j).Activate Sheets(j).Range("A2").Select Next j Sheets(1).Activate Cells.EntireColumn.AutoFit Range("A2").Select End Sub
Descarga el archivo de ejemplo
027 – Práctica – Agrupar contenido de varias hojas en una hoja.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.