Copiar celdas a otro libro en diferentes partes

Ayuda nesecito un macro para copiar unas celdas, a otro libro (PERO QUE NO ESTEN EN LA MISMA CARPETA), y que las celdas que quiero copiar, se copien a celdas definidas.

Libro origen (libro activo)

Libro destino ("respaldos")

Copiar celdas de:

a3 a e22  de a5 a l22 de a4 a m22  y a1 a n22

Y que vaya aumentando filas cada ves que ejecute el macro

1 respuesta

Respuesta
1

H o l a:

Te anexo la macro, se me pasó comentarte, en esta parte de la macro, tienes que poner la ruta donde se encuentra el archivo "respaldos.xlsx":

ruta = "C:\trabajo\"

También puedes ver en la macro, dentro de una array( ), las celdas origen, a la par tiene otro array para las columnas destino. En esos array puedes agregar más celdas. Recuerda que en el primer array va una celda y en el segundo array va una columna, ya que en el destino el número de fila es el que va cambiando.

La macro:

Sub CopiarCeldas()
'Por.Dante Amor
    cs1 = Array("A3", "A5", "A4", "A1") 'celdas origen
    cs2 = Array("E", "L", "M", "N")     'columnas destino
    lib = "respaldos.xlsx"              'libro destino
    hoja = "Hoja1"                      'hoja destino
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    ruta = "C:\trabajo\"
    If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
    If Dir(ruta & lib) = "" Then
        MsgBox "Libro destino no existe", vbCritical, "ERROR"
        Exit Sub
    End If
    '
    If h1.Range(cs1(0)) = "" Then
        MsgBox "Está vacía la celda : " & cs1(0), vbCritical, "ERROR"
        Exit Sub
    End If
    '
    Set l2 = Workbooks.Open(ruta & lib)
    Set h2 = l2.Sheets(hoja)
    u = h2.Range(cs2(0) & h2.Rows.Count).End(xlUp).Row + 1
    If u < 22 Then u = 22
    For c = LBound(cs1) To UBound(cs2)
        h2.Cells(u, cs2(c)) = h1.Range(cs1(c))
    Next
    l2.Close True
    MsgBox "Celdas copiadas", vbInformation, "COPIAR"
End Sub



':)
':)

Estimado Dante... tengo un error en esta parte del código me puedes ayudar 

Gracias y saludos D A N T E    A M OR

If h1.Range(cs1(0)) = "" Then

¿Cambiaste algo en la macro?

¿Copiaste la macro completa?

¿Qué dice el mensaje de error?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas