Macro: copiar algunas celdas de un libro en otro libro y por cada fila crear un archivo

Se tiene un cuadro en una hoja de excel que contiene por ejemplo 5 filas y 5 columnas (5x5) cada fila representa un archivo para ser guardado con la información de cada fila, algunos datos de la tabla se copian en el otro libro. En la imagen se aclara un poco, por cada fila genere un archivo en excel.

Así va el código

Sub CopiarCeldas()

Dim wbDestino As Workbook, _
wsOrigen As Excel.Worksheet, _
wsDestino As Excel.Worksheet, _
rngOrigen As Excel.Range, _
rngDestino As Excel.Range

Set wbDestino = Workbooks.Open(ActiveWorkbook.Path & "\LibroDestino.xlsx")

ThisWorkbook.Activate

Set wsOrigen = Worksheets("Origen")
Set wsDestino = wbDestino.Worksheets("HojaDestino")

wsOrigen.Range("C4").Copy Destination:=wsDestino.Range("F7")
wsOrigen.Range("B4").Copy Destination:=wsDestino.Range("G7")
wsOrigen.Range("A4").Copy Destination:=wsDestino.Range("F9")

Application.CutCopyMode = False

wbDestino.Save
wbDestino.Close

End Sub

Muchas gracias

1 respuesta

Respuesta
2

Te anexo la macro

Sub CopiarDatos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets("Origen")
    ruta = l1.Path & "\"
    n = 1
    For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
        Set l2 = Workbooks.Open(ruta & "LibroDestino.xlsx")
        Set h2 = l2.Sheets(1)
        h2.Range("F7") = h1.Cells(i, "C")
        h2.Range("G7") = h1.Cells(i, "B")
        h2.Range("F9") = h1.Cells(i, "A")
        l2.SaveAs Filename:=ruta & "Libro" & n & ".xlsx", FileFormat:=xlOpenXMLWorkbook
        l2.Close
        n = n + 1
    Next
    MsgBox "Fin"
End Sub
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias! Ufff super mega excelente Dante Amor, sos un Pro, un máster !!! sin ningún problema, exactamente lo que necesitaba. Mil gracias

Buena Tarde Dante Amor, tengo una última inquietud si la BD contiene aprox 3000 filas, existe un problema con el buffer o algo así para que realice en su totalidad la macro ?? mil gracias. Por que lo ejecuto y llegó hasta la 985.

¿Te envía algún mensaje de error?

La macro lee desde el registro 2 hasta la última fila con datos en la columna B. Revisa que en la columna B tengas datos hasta la fila 3000

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas