Copiar celdas de una hoja activa a otro libro

Necesito un macro para, que copie 4 celdas de la hoja activa a otro libro a celdas especificas y cada vez que quiera copiar, vaya aumentando una fila.

Genero registros diariamente una ves terminada el registro ejecute el macro y me empiece a copiar algunas celdas a otro libro a una hoja especifico y celdas (mejor si no se abre solo que guarde), y me vaya aumentando fila cada vez que copie.

1 Respuesta

Respuesta
2

H  o l a:

Te anexo la macro, el libro destino deberá estar en la misma carpeta donde tienes el libro con la macro.

También tendrás que escribir en la macro los siguientes datos

c1 = "B3" 'celda 1
c2 = "D4" 'celda 2
c3 = "A9" 'celda 3
c4 = "C5" 'celda 4
lib = "respaldo.xlsx" 'libro destino
hoja = "Hoja1" 'hoja destino
col = "A" 'Columna destino


La macro:

Sub CopiarCeldas()
'Por.Dante Amor
    c1 = "B3"               'celda 1
    c2 = "D4"               'celda 2
    c3 = "A9"               'celda 3
    c4 = "C5"               'celda 4
    lib = "respaldo.xlsx"   'libro destino
    hoja = "Hoja1"          'hoja destino
    col = "A"               'Columna destino
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    Set h1 = l1.ActiveSheet
    ruta = l1.Path & "\"
    If Dir(ruta & lib) = "" Then
        MsgBox "Libro destino no existe", vbCritical, "ERROR"
        Exit Sub
    End If
    '
    Set l2 = Workbooks.Open(ruta & lib)
    Set h2 = l2.Sheets(hoja)
    u = h2.Range("A" & h2.Rows.Count).End(xlUp).Row + 1
    c = Columns(col).Column
    h2.Cells(u, c) = h1.Range(c1)
    h2.Cells(u, c + 1) = h1.Range(c2)
    h2.Cells(u, c + 2) = h1.Range(c3)
    h2.Cells(u, c + 3) = h1.Range(c4)
    l2.Close True
    MsgBox "Celdas copiadas", vbInformation, "COPIAR"
End Sub

':)
':)

Estimado Dante gracias por el macro, como se realizaría quiero que la celdas:

A3 SE COPIE EN E22 (libro destino)

A5 SE COPIE EN L22 (libro destino)

A4 SE COPIE EN M22 (libro destino)

A1 SE COPIE EN N22 (libro destino)

Sub CopiarCeldas()
'Por.Dante Amor
c1 = "a3" 'celda 1
c2 = "a5" 'celda 2
c3 = "a4" 'celda 3
c4 = "a1" 'celda 4
lib = "respaldo.xlsx" 'libro destino
hoja = "Re bar" 'hoja destino
col = "A22" 'Columna destino
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set l1 = ThisWorkbook
Set h1 = l1.ActiveSheet
ruta = l1.Path & "\"
If Dir(ruta & lib) = "" Then
MsgBox "Libro destino no existe", vbCritical, "ERROR"
Exit Sub
End If
'
Set l2 = Workbooks.Open(ruta & lib)
Set h2 = l2.Sheets(hoja)
u = h2.Range("A" & h2.Rows.Count).End(xlUp).Row + 1
c = Columns(col).Column - ------------------------Error
h2.Cells(u, c) = h1.Range(c1)
h2.Cells(u, c + 1) = h1.Range(c2)
h2.Cells(u, c + 2) = h1.Range(c3)
h2.Cells(u, c + 3) = h1.Range(c4)
l2.Close True
MsgBox "Celdas copiadas", vbInformation, "COPIAR"
End Sub

GRACIAS D A N T E  A M O R  espero tu respuesta

H o l a:

En la columna destino pusiste esto:

Col = "A22"

Solamente tienes que poner la letra de la columna:

col = "A"

También cambia en la macro esta línea:

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

Por estas:

u = h2.Range(col & h2.Rows.Count).End(xlUp).Row + 1
if u < 22 then u = 22

':)
':)

Gracias nuevamente DANTE  todo funciona bien... hay manera de que las celdas copiadas se copie en diferentes celdas y no correlativo? 

Que "a3"se copie en "e22"

Que "a5"se copie en "L22"

Que "a4"se copie en "m22"

Que "a13"se copie en "n22"

Dante, hay alguna  manera de que el libro (destino) este en diferente carpeta o  red ???

Saludos D A N T E  A M O R

Con mucho gusto te ayudo con todas tus peticiones.

Crea una nueva pregunta en todoexpertos, en el tema de microsoft excel, en el desarrollo de la pregunta escribe: "para Dante Amor", ahí me describes con detalle lo que necesitas, recuerda poner todos los datos completos, nombres de libros, carpetas, nombres de hojas, celdas origen, celdas destino; si lo puedes acompañar con un ejemplo, mejor, de esa forma podría realizar la macro tal como la necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas