Copiar datos de una hoja a otra pegándolos en la ultima fila vacía con macro

¿Una macro que copie datos de una hoja a otra pegándolos en la ultima fila vacía que encuentre?

Respuesta
3

Te anexo la macro. Cambia las hojas hoja1 y hoja2 por el nombre de tus hojas. Te puse 4 ejemplos para copiar 4 celdas a la fila de la hoja destino, cambia las celdas A3, B4, C5, D4 por las celdas que quieras copiar, también cambia la columna a la que quieras copiar.

Procura que el dato que pongas en la columna A de la hoja2 siempre tenga valor.

Sub Copiar_Datos()
'---
'   Por.Dante Amor
'---
    Set h1 = Sheets("Hoja1")        'hoja origen
    Set h2 = Sheets("Hoja2")        'hoja destino
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
    h1.Range("A3").Copy h2.Range("A" & u2)
    h1.Range("B4").Copy h2.Range("B" & u2)
    h1.Range("C5").Copy h2.Range("C" & u2)
    h1.Range("D4").Copy h2.Range("D" & u2)
    MsgBox "Datos copiados", vbInformation
End Sub

Avísame cualquier duda.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Hola esta muy bien el código, el detalle es que quiero que del "Libro1", "hoja1" copie a partir del rango "B8 las filas que tengan datos, y copie esos datos solo como valores en el "Libro2", "Hoja1" a partir de la de la celda "B4" y los vaya pegando en la fila que encuentre que este vacía en esa columna, ya que se van ir guardando datos semana con semana en esa hoja1 del libro2, y tengo que estarlos copiando manualmente, gracias por tu aporte espero contar con tu atenta colaboración, excelente día!!!

En la primera petición no mencionaste 2 libros, solamente "copie datos de una hoja a otra".

Te anexo la nueva macro, cambia "libro2.xlsx", por el nombre de tu libro2, el archivo lo tienes que tener abierto cuando hagas la copia.

Sub Copiar_Datos()
'---
'   Por.Dante Amor
'---
    Application.ScreenUpdating = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Hoja1")         'hoja origen
    Set l2 = Workbooks("libro2.xlsx")   'libro destino con extensión, debe estar abierto
    Set h2 = l2.Sheets("Hoja1")         'hoja destino
    u1 = h1.Range("B" & Rows.Count).End(xlUp).Row
    If u1 < 8 Then u1 = 8
    u2 = h2.Range("B" & Rows.Count).End(xlUp).Row + 1
    If u2 < 4 Then u2 = 4
    h1.Rows(8 & ":" & u1).Copy
    h2.Range("A" & u2).PasteSpecial xlValues
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
    MsgBox "Datos copiados", vbInformation
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas