Copiar/Pegar entre 2 libros de VBA

Resuelto
ti_mouton Mensajes publicados 153 Estado Miembro -  
pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   -
Hola,

Soy novato en VBA y busco desarrollar una macro que me permita Copiar/Pegar las columnas de la hoja "Listado de Proyectos" contenida en el libro "Base de datos" en la hoja "BDD" del libro en el que estoy desarrollando la macro.
Gracias a Internet he logrado empezar a escribir la macro, pero no funciona, me aparece un mensaje de error en esta línea:
classeurSource.Sheets("Listado de Proyectos").Cells.Copy classeurDestination.Sheets("BDD").Range("A1").Paste

Aquí está mi macro completa:
 Sub CommandBouton1() Dim classeurSource As Workbook, classeurDestination As Workbook 'abrir el libro fuente (solo lectura) Chemin = ThisWorkbook.Path Set classeurSource = Application.Workbooks.Open(Chemin & "\Base de datos.xlsm") 'definir el libro destino Set classeurDestination = ThisWorkbook 'copiar los datos de la hoja "Listado de Proyectos" del libro fuente a la hoja "BDD" del libro destino classeurSource.Sheets("Listado de Proyectos").Cells.Copy classeurDestination.Sheets("BDD").Range("A1").Paste 'cerrar el libro fuente classeurSource.Close False End Sub


Gracias por tu ayuda

1 respuesta

  1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    Hola,

    Inténtalo así:

    Sub CommandBouton1() Dim classeurSource As Workbook, classeurDestination As Workbook 'abrir el libro de trabajo fuente (en solo lectura) Chemin = ThisWorkbook.Path 'definir el libro de trabajo de destino Set classeurDestination = ThisWorkbook Set classeurSource = Application.Workbooks.Open(Chemin & "\Base de datos.xlsm") 'copiar los datos de la hoja "Listado de Proyectos" del libro de trabajo fuente a la hoja "BDD" del libro de trabajo de destino classeurSource.Sheets("Listado de Proyectos").Cells.Copy classeurDestination.Sheets("BDD").Range("A1") 'cerrar el libro de trabajo fuente classeurSource.Close False End Sub


    EDIT: explicaciones:
    He colocado la definición del libro de trabajo de destino antes, ya que "estábamos en" el ThisWorkbook.
    Lo que estaba fallando era la sintaxis con .Paste.
    Si quieres usar .Paste, debes colocarlo en dos líneas de código:
    Workbooks("machin").Sheets("Chose").Range("truc").Copy
    Workbooks("destin").Sheets("hoja").Range("A1").Paste


    Sin el Paste, en una sola línea de código:
    classeurSource.Sheets("Listado de Proyectos").Cells.Copy classeurDestination.Sheets("BDD").Range("A1")

    ???? Cordialmente,
    Franck ????
    2
    1. ti_mouton Mensajes publicados 153 Estado Miembro
       
      ¡Perfecto, funciona muy bien! ¡Un gran GRACIAS por su ayuda valiosa y su rapidez de respuesta!
      0
      1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773 > ti_mouton Mensajes publicados 153 Estado Miembro
         
        de nada.
        ¡Hasta luego!
        0