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 -
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:
Gracias por tu ayuda
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
-
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 ????