Tengo esta macro, pero al intentar pegar información de un libro a otro en la ultima fila vacía me bloquea excel (no responde)

Sub copiar ()

Range("C10").Select
Selection.Copy
Workbooks.Open "C:\Users\Laura\Dropbox\DOCUMENTOS\prueba.xlsx"
ActiveWindow.SmallScroll Down:=129
ActiveSheet.Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Cut Range("A" & Range("A" & Rows.Count).End(xlUp).Row + 1)
ActiveSheet. PasteSpecial xlPasteValues
Windows("historias.xlsm").Activate

End Sub 

No se si hay algo mal... Y si se podrían seleccionar varias celdas para copiar en diferente orden (a4, c6, h3..) y pegarlas en secuencia a4=a1, c6=b1...

1 respuesta

Respuesta
1

Libro origen, cómo se llama el libro, la hoja y las celdas que quieres copiar.

Libro destino, cómo se llama el libro, la hoja y las celdas dónde quieres pegar.

Entiendo eso, sin embargo no puedo poner celdas específicas ya que lo requiero en las celdas vacías al final del documento

Para ayudarte con toda la macro, preciso que me digas estos datos:

Libro ORIGEN:

1. Cómo se llama el libro ORIGEN: Por ejemplo: es el libro activo, o es el libro que contiene la macro.

2. Nombre de la hoja ORIGEN: Por ejemplo ejemplo: "Hoja1"

3. Las celdas que quieres copiar DEL ORIGEN: Por ejemplo: a4, c6, h3, etc

Libro DESTINO:

4. Cómo se llama el libro DESTINO: Por ejemplo:

"C:\Users\Laura\Dropbox\DOCUMENTOS\prueba.xlsx"

5. Cómo se llama la hoja DESTINO: Por ejemplo: "HojaDatos"

6. Las celdas DESTINO dónde quieres pegar. Por ejemplo: "Después de la última celda con datos de la columna A" o "En la primera celda vacía de la columna A"

LIBRO ORIGEN 

1. Libro que contiene la macro.

2. 'Ficha'

3. C10, C4, D4, F4,G4, I2,F2,D7, D12, F10, C14, D18, F18.

DESTINO

4."C:\Users\Laura\Dropbox\DOCUMENTOS\diario de consulta.xlsx"

5. 'Sheet1'

6. Después de la última celda con datos de la columna A 

Gracias por tu ayuda

Prueba esto:

Sub Copia_Celdas()
  Dim arch As String
  Dim l2 As Workbook, h1 As Worksheet, h2 As Worksheet
  '
  Application.ScreenUpdating = False
  Set h1 = Sheets("Ficha")
  'Ruta y nombre del libro Destino
  arch = "C:\Users\Laura\Dropbox\DOCUMENTOS\diario de consulta.xlsx"
  '
  If Dir(arch) <> "" Then
    'establece en un objeto el libro Destino y la hoja Destino
    Set l2 = Workbooks.Open(arch)
    Set h2 = l2.Sheets("Sheet1")
    'Pasa los datos del Origen al Destino
    h2.Range("A" & Rows.Count).End(3)(2).Resize(1, 13).Value = _
      Array(h1.[C10], h1.[C4], h1.[D4], h1.[F4], h1.[G4], h1.[I2], _
            h1.[F2], h1.[D7], h1.[D12], h1.[F10], h1.[C14], h1.[D18], h1.[F18])
    'Cierra y guarda el libro Destino
    l2.Close True
    MsgBox "Archivo actualizado"
  Else
    MsgBox "No Existe El Libro : " & arch
  End If
  Application.ScreenUpdating = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas