Curso Excel VBA y Macros – Cap. 27 – Práctica: Agrupar tablas de varias hojas en una sola

<<CURSO COMPLETO EN YOUTUBE>>

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

<<CURSO COMPLETO EN YOUTUBE>>

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.

You may also like...