Macro para copiar celdas en otro libro en la primera fila vacía

Estoy haciendo mis primeras macros y tengo una duda.

Querría preparar una macro que copie un conjunto de filas de una hoja llamada "CAUSAS" del libro de origen y las pegue en otra, llamada "Hoja1" del libro de destino, "PruebaMacro.xlsx", en la primera fila vacía.

Adjunto lo que he escrito hasta ahora: consigo que se copie en las filas siguientes, pero la primera fila al copiar la segunda vez se escribe sobre la última de la primera copia. Debe tratarse de algún error de principiante, pero agradecería mucho vuestra ayuda.

Sub CopiarCeldas()
'Se definen objetos a utilizar
Dim wbDestino As Workbook, _
wsOrigen As Excel.Worksheet, _
wsDestino As Excel.Worksheet, _
rngOrigen As Excel.Range, _
rngDestino As Excel.Range
'Libro Excel destino
Set wbDestino = Workbooks.Open("C:\José\Informes\PruebaMacro.xlsx")
'Activarlo
ThisWorkbook.Activate
'Se indican las hojas de origen y destino
Set wsOrigen = Worksheets("CAUSAS")
Set wsDestino = wbDestino.Worksheets("Hoja1")
'Inicializar los rangos de origen y destino
Set rngOrigen = wsOrigen.Range("A8")
Set rngDestino = wsDestino.Range("A2").End(xlDown)
'Se selecciona rango de celdas origen
rngOrigen.Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
'Pegar datos en celda destino
rngDestino.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Guardar y cerrar el libro destino
WbDestino. Save
WbDestino. Close
End Sub

1 Respuesta

Respuesta
1

Cambia esta línea

Set rngDestino = wsDestino.Range("A2").End(xlDown)

Por estas:

u = wsDestino.Range("A" & Rows.Count).End(xlUp).Row + 1
Set rngDestino = wsDestino.Range("A" & u)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas