Pegar datos omitiendo filas en blanco

Para Dante Amor

Me gustaría saber si se puede pegar datos desde un rango de datos de una hoja a otra omitiendo las posibles filas o columnas en blanco o sin datos.

1 respuesta

Respuesta
1

H o l a:

Puedes poner la macro con tus datos, para ver cómo quedó el rango de datos a copiar.

Sub CopiarRango()

' copiar un rango de datos concreto de todas las hojas de un libro a la hoja 2

 Application.ScreenUpdating = False

    Set h1 = Sheets("Hoja2")    'hoja destino

    rango = "A10:j55"             'rango de datos a copiar

    fil = 6                     'fila inicial para pegar los datos en la hoja seleccionada

    col = "A"                   'columna inicial para pegar los datos en la hoja seleccionada

    '

    For Each h In Sheets

        If h.Name <> h1.Name Then

            Set r = h.Range(rango)

            r.Copy

            h1.Cells(fil, col).PasteSpecial xlValues

            fil = fil + r.Rows.Count

        End If

    Next

    Application.ScreenUpdating = True

    MsgBox "Fin copiado de datos"

End Sub

Te anexo la macro actualizada:

Sub CopiarRango()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja2")    'hoja destino
    rango = "A10:J55"           'rango de datos
    fil = 6                     'fila inicial para pegar los datos
    col = "A"                   'columna inicial para pegar los datos
    '
    For Each h In Sheets
        If h.Name <> h1.Name Then
            Set r = h.Range(rango)
            cini = r.Cells(1, 1).Column
            cfin = r.Cells(1, r.Columns.Count).Column
            For Each f In r.Rows
                n = WorksheetFunction.CountA(h.Range(h.Cells(f.Row, cini), h.Cells(f.Row, cfin)))
                If n > 0 Then
                    h.Range(h.Cells(f.Row, cini), h.Cells(f.Row, cfin)).Copy
                    h1.Cells(fil, col).PasteSpecial xlValues
                    fil = fil + 1
                End If
            Next
        End If
    Next
    Application.ScreenUpdating = True
    MsgBox "fin"
End Sub

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas