Como juntar determinadas filas de diferentes hojas de un libro en una nueva hoja...

Tengo un libro con 30 hojas aproximadamente todas con al menos 120 registros que empiezan a partir de la fila 12, quisiera su ayuda para construir una macro que reúna todas las filas a partir de la fila 12 de cada una de las hojas del libro en una sola hoja.

1 respuesta

Respuesta
1

Te anexo la macro, antes deberás crear una hoja llamada "Resumen".

Sub JuntarFilas()
'Por.Dante Amor
    Set h1 = Sheets("Resumen")
    h1.Cells.Clear
    For Each h In Sheets
        If h.Name <> "Resumen" Then
            u = h.UsedRange.Rows(h.UsedRange.Rows.Count).Row
            If u > 11 Then
                j = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row + 1
                h.Rows("12:" & u).Copy h1.Rows(j)
            End If
        End If
    Next
    MsgBox "Juntar filas", vbInformation, "TERMINADO"
End Sub

Sigue las Instrucciones para ejecutar la macro

  1. Abre tu archivo de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Para ejecutarla presiona F5

Saludos. Dante Amor

Si tienes fórmulas y quieres hacer un pegado especial valores, utiliza esta macro

Sub JuntarFilas()
'Por.Dante Amor
    Set h1 = Sheets("Resumen")
    h1.Cells.Clear
    For Each h In Sheets
        If h.Name <> "Resumen" Then
            u = h.UsedRange.Rows(h.UsedRange.Rows.Count).Row
            If u > 11 Then
                j = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row + 1
                h.Rows("12:" & u).Copy
                h1.Rows(j).PasteSpecial Paste:=xlPasteValues
            End If
        End If
    Next
    MsgBox "Juntar filas", vbInformation, "TERMINADO"
End Sub

Hola, antes que nada agradezco infinitamente su pronta respuesta, probé el código proporcionado sin embargo me sale un error en esta línea, 

 u = h.UsedRange.Rows(h.UsedRange.Rows.Count).Row

El error dice "El objeto no admite está propiedad o método".

Muchas gracias por su ayuda, estoy trabajando con Excel 2013 

Prueba con esta:

Sub JuntarFilas()
'Por.Dante Amor
    Set h1 = Sheets("Resumen")
    h1.Cells.Clear
    For Each h In Sheets
        If h.Name <> "Resumen" Then
            u = h.Range("A1").SpecialCells(xlLastCell).Row
            If u > 11 Then
                j = h1.Range("A1").SpecialCells(xlLastCell).Row + 1
                h.Rows("12:" & u).Copy
                h1.Rows(j).PasteSpecial Paste:=xlPasteValues
            End If
        End If
    Next
    MsgBox "Juntar filas", vbInformation, "TERMINADO"
End Sub

Hola.

Sigue el error en la misma línea.

Tienes las hojas protegidas

Desprotege las hojas y ejecuta la segunda macro que te envié.

Si todas las hojas tienen el mismo password ejecuta la siguiente macro, pero antes cambia en la macro "abc" por el password que desees.

Sub JuntarFilas()
'Por.Dante Amor
    pwd = "abc"
    Set h1 = Sheets("Resumen")
    h1.Cells.Clear
    For Each h In Sheets
        If h.Name <> "Resumen" Then
            '
            h.Unprotect pwd
            '
            u = h.UsedRange.Rows(h.UsedRange.Rows.Count).Row
            If u > 11 Then
                j = h1.UsedRange.Rows(h1.UsedRange.Rows.Count).Row + 1
                h.Rows("12:" & u).Copy
                h1.Rows(j).PasteSpecial Paste:=xlPasteValues
            End If
            h.Protect pwd
        End If
    Next
    MsgBox "Juntar filas", vbInformation, "TERMINADO"
End Sub

Saludos.Dante Amor

¡Gracias!

Ha funcionado su código a la perfección y es de gran ayuda el código, no estaba protegida pero tenia la primera hoja oculta con un gráfico la elimine y funciono a la perfección.

Le agradezco infinitamente su tiempo

¡Gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas