Pegar 2 rangos de filas en una columna de un libro diferente

Esta pregunta la dirijo a Dante Amor: Existe un libro llamado "Resultado", en una hoja llamada "Columna"; en esta hoja deben quedar pegados los rangos de dos filas de Hojas diferentes en un libro llamado "Prueba". Adicional se puede presentar que un campo de esos rangos esté vacío, la idea es que no copie el vacío sino que lo omita.

Mil gracias Dante Amor por tu ayuda tan rápida y extraordinaria.

1 Respuesta

Respuesta
1

H o l  a:

Te anexo la macro, en la macro van unos comentarios para que actualices los datos.

El libro "Resultado.xlsx", deberá estar abierto.

Sub CopiarFilas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")             'hoja1
    Set h11 = l1.Sheets("Hoja2")            'hoja2
    Set l2 = Workbooks("Resultado.xlsx")    'nombre del libro con todo y extensión
    Set h2 = l2.Sheets("Columna")           'hoja destino
    '
    j = 2
    h2.Range("A2:B35").ClearContents        'limpia rango destino
    For i = Columns("E").Column To Columns("U").Column
        If h1.Cells(2, i) <> "" Then
            h2.Cells(j, "A") = h1.Name
            h2.Cells(j, "B") = h1.Cells(2, i)
            j = j + 1
        End If
    Next
    For i = Columns("E").Column To Columns("U").Column
        If h11.Cells(2, i) <> "" Then
            h2.Cells(j, "A") = h11.Name
            h2.Cells(j, "B") = h11.Cells(2, i)
            j = j + 1
        End If
    Next
    MsgBox "Proceso terminado"
End Sub

Mil gracias Dante, tengo otra duda... Los libros en vez de llamarse hoja1 y hoja2 se llaman año 2001 y año 2002. Como se haría para que solo copiara el numero y omitiera la palabra año.

mil gracias.

¿No entiendo?

Hola Dante, es decir, que no copie el nombre completo de la hoja en la columna destino. En este caso la hoja Se llamaría Año 2002 y la otra Año 2001. La idea es que se copie solo 2002 y 2001.

muchas gracias

Macro actualizada:

Sub CopiarFilas()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")             'hoja1
    Set h11 = l1.Sheets("Hoja2")            'hoja2
    Set l2 = Workbooks("Resultado.xlsx")    'nombre del libro con todo y extensión
    Set h2 = l2.Sheets("Columna")           'hoja destino
    '
    j = 2
    h2.Range("A2:B35").ClearContents        'limpia rango destino
    For i = Columns("E").Column To Columns("U").Column
        If h1.Cells(2, i) <> "" Then
            h2.Cells(j, "B") = h1.Cells(2, i)
            j = j + 1
        End If
    Next
    For i = Columns("E").Column To Columns("U").Column
        If h11.Cells(2, i) <> "" Then
            h2.Cells(j, "A") = Right(h1.Name, 4)
            h2.Cells(j, "B") = h11.Cells(2, i)
            j = j + 1
        End If
    Next
    MsgBox "Proceso terminado"
End Sub

Eres muy teso en esto, mil gracias. Una ultima jejej... Si llegasen a existir en cada hoja 2 rangos de filas por ejemplo (E2:U2)  y (Z2:AX2) como se pegarían en la columna?

saludos y gracias de nuevo

Con gusto te sigo ayudando con todas las peticiones que necesites, pero crea una pregunta nueva por cada una.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas