Páginas

miércoles, 12 de febrero de 2014

VBA Excel: Copiar datos de celdas desde un libro a otro, en forma de lista.



Sub file_location() 

Dim dato1 As String 'Declaro las variables
Dim dato2 As String
Dim dato3 As String

'Ahora grabo en las variables los datos que pienso "copiar" en otro libro.

With ThisWorkbook.Sheets("hoja 1") 'La funcion With es una maravilla
        dato1= .Range("c2") 'En lugar de copy paste uso el operador igual, mas eficiente dicen.
        dato2= .Range("c3")
        dato3 = .Range("c4")
End With

'Ahora con el libro de destino, selecciono los rangos, uso  .End(xlDown).Offset(1, 0) para encontrar la primera celda libre e ir "pegando"en lista:

With Workbooks.Open("D:\ElOtroLibro.xlsm").Sheets("Sheet1")
        .Range("a1").End(xlDown).Offset(1, 0) = dato1
        .Range("b1").End(xlDown).Offset(1, 0) = dato2
        .Range("c1").End(xlDown).Offset(1, 0) = dato3
End With

ActiveWorkbook.Save
ActiveWorkbook.Close

'Esto es solo para volver a la hoja y libro desde donde comencé a transferir los datos:

ThisWorkbook.Sheets("hoja 1").Activate
Range("c3").Select

Ahora como buscar un texto y devolver un valor adyacente


Nota: Estoy creando un tutorial para aprender a utilizar VBA en la oficina. La pagina es www.macroreportes.com eventualmente ire agregando mas secciones, por lo que si quieres seguir el curso seria buena idea registrar tu email en la pagina para recibir las notificaciones cuando suba un nuevo post.

3 comentarios:

  1. y cómo sería para copiar o enviar de un formulario a unas celdas de otro libro diferente?

    ResponderEliminar
    Respuestas
    1. 'Primero declaras los dos workbooks con los que trabajaras
      Dim book1 As Workbook
      Dim book2 As Workbook

      'los asignas
      Set book1 = Workbooks.Open("archivo1.xlsx")
      Set book2 = Workbooks.Open("archivo2.xlsx")

      'ahora copias el rango de un libro a otro

      book1.Sheets("sheet1").Range("a1").Copy book2.Sheets("sheet2").Range("a1")

      'eso es todo.

      Eliminar
  2. Si quisiera copiar un datos especifico de varias hojas a otro libro como seria el codigo

    ResponderEliminar