Vinculo

Hola, alguien me podría decir por favor como podría hacer una macro que se ejecute al abrir la el archivo denominado(1) y que se vaya a buscar los datos que hay en el archivo (2) y los datos de la hoja (A) los pegue dentro del libro (B) del archivo (1) y no sea necesario tener que abrir los dos archivos (1) y (2) para que los vínculos se vean y funcionen,
no se si me he explicado bien
Gracias.-
pd.- el rango que debe copiar es desde A2 a E 350 del archivo (2) hoja (a)

1 respuesta

Respuesta
1
Esta es la macro
Sub Auto_open()
'
' Auto_open Macro
'
Workbooks.Open Filename:= _
"Aquí pones la ruta donde tienes tu libro de donde quieres coger los datos"
Range("A1:A350").Select
Selection.Copy
Windows("Aquí pones el nombre del libro en el cual quieres pegar los datos").Activate
Range("A1").Select
ActiveSheet.Paste
End Sub
Hoja Julio, esta macro donde la pongo el libro tiene 8 hojas y cada vez se puede abrir en una hoja distinta, es devir me pongo en la pestaña de cada hoja y con el botón derecho le digo mostrar código ¿ahí? O donde tu me dirás y si es ahí ¿la pongo en las ocho hojas?
Gracias.
Esta macro como puedes leer, se llama auto_open significa que se ejecutará al abrir el libro, sin que hagas nada eso si yo entendí que tan solo querías abrir un libro copiar el rango de celdas de la A1 a la A350 y pegarlas en la hoja 1 del libro que abrías, si no es así dímelo, pues habría que cambiar las hojas de copiado y lashojas de pegado.
Hola Julio creí que iba a ser más fácil y para no meter la pata te cuento
tengo que buscar los datos que están en el archivo:
D:\A A CREVVVVVV2\kilometros_serie.xls
En la hoja kilometros_serie desde A1:F350
y pegarla en el siguiente archivo:
D:\A A CREVVVVVV2\VISITAS LO HOJA PRUEBAS.XLS
dentro del libro toma de datos y que los pegue desde A1 a F350
gracias.-
La otra pregunta lo probare hoy y ya te contare
muchísimas gracias por tu ayuda.
Antonio
Vamos a ver, ahora ya me has echo un lío, entiendo que tienes un libro con datos que está en D:\A A CREVVVVVV2\Kilometros_serie.xls y tú quieres abrir ese libro y de la hoja kilometros_serie quieres copiar los datos que se encuentran en el rango A1:F350 y pegarlos en otro libro que está en D:\A A CREVVVVVVV2\VISITAS LO HOJA PRUEBAS.XLS (imagino que en la hoja1) vale la macro que debes poner es esta:
Sub Auto_Open()
'
' Auto_Open Macro
' '
ChDir "Aquí pones la ruta donde esta tu libro de datos"
Workbooks.Open Filename:= _
"Aquí pones la ruta de tu libro con el nombre del libro incluido"
Range("A1:F350").Select
Selection.Copy
ActiveWindow.WindowState = xlMinimized
ActiveWindow.WindowState = xlMaximized
Range("A1").Select
ActiveSheet.Paste
ActiveWindow.WindowState = xlMinimized
Windows("Aquí pones el nombre del libro que tení los datos para que lo cierre").Activate
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized
End Sub
Esta macro debes de ponerla en el libro que esta vacío, al que llevaras tus datos copiados. Cambias el nombre que te he puesto y pones el nombre de la hoja de recogida de datos.
Hola Julio he puesto lo siguiente:
Y se para me dice que no encuentra el archivo de la primera pregunta que hace la hoja se llama iguel que el archivo de esta hoja toma los datos y los debe de pegar en la "hoja de toma de datos " del otro archivo y es el que debe de permanecer abierto este donde copia como bien has puesto debe de cerrarse.
Sub Auto_Open()
'
' Auto_Open Macro
' '
'
'ChDir "a continuacion he puesto donde esta el libro grande para trabajar"
ChDir "C:\Documents and Settings\usuario\Mis documentos\A A CREVVVVVV2\VISITAS LO HOJA PRUEBAS.xls"
' a continuacion he puesto donde esta el libro donde estan los datos para copiar que la hoja se llama igual pero no se ponerla
Workbooks.Open Filename:= _
"C:\Documents and Settings\usuario\Mis documentos\A A CREVVVVVV2\KILOMETROS_SERIE.XLS"
Range("A1:F350").Select
Selection.Cop
ActiveWindow.WindowState = xlMinimized
ActiveWindow.WindowState = xlMaximized
Range("A1").Select
ActiveSheet.Paste
ActiveWindow.WindowState = xlMinimized
' a continuacion he puesto el libro que debe de cerrar puesto que el otro es el que debe de quedar abierto para seguri trabajando
Windows("C:\Documents and Settings\usuario\Mis documentos\A A CREVVVVVV2\KILOMETROS_SERIE.XLS").Activate
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized
End Sub
Hola, JUlio mira he realizado otra prueba y tampoco me va, he creado un archivo denominado datos (ahí están los datos a copiar) y otro denominado pegado de datos donde deberán ser pegados los datos y en esta hoja es en la que debo trabajar y la macro que tume pasaste la he modificado y la he pegado en el código de hoja 1 por que en esta hoja no hay nada más que eso, y no me funciona tampoco te la envío para que la veas:
Sub Auto_Open()
'
' Auto_Open Macro
' '
'
'ChDir "a continuacion he puesto donde esta el libro grande para trabajar"
ChDir "C:\pegado de datos.xls"
' a continuacion he puesto donde esta el libro donde estan los datos para copiar que la hoja se llama igual pero no se ponerla
Workbooks.Open Filename:= _
"C:\datos.xls"
Range("A1:F350").Select
Selection.Cop
ActiveWindow.WindowState = xlMinimized
ActiveWindow.WindowState = xlMaximized
Range("A1").Select
ActiveSheet.Paste
ActiveWindow.WindowState = xlMinimized
' a continuacion he puesto el libro que debe de cerrar puesto que el otro es el que debe de quedar abierto para seguri trabajando
Windows("C:\datos.xls").Activate
ActiveWindow.WindowState = xlNormal
ActiveWindow.WindowState = xlNormal
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized
End Sub
Vamos a ver no has seguido al pie de la letra mis instrucciones te explico en tu macro:
Sub Auto_Open()
'
' Auto_Open Macro
' '
'
'ChDir "a continuacion he puesto donde esta el libro grande para trabajar"
ChDir "C:\"
'Aquí solo tenías que pegar la ruta no el nombre del archivo
' a continuacion he puesto donde esta el libro donde estan los datos para copiar que la hoja se llama igual pero no se ponerla
'Aquí tenías que poner el archivo con su ruta
Workbooks.Open Filename:= _
"C:\pegado de datos.xls"
'Ahora si la hoja de donde tienes que coger los datos no es la Hoja1 debes de incluir
Sheets("Aquí pones el nombre de la hoja ").Select
Range("A1:F350").Select
Selection. Copy
'Ahora abrimos el libro donde quieres pegar los datos
Workbooks.Open Filename:= _
"C:\pegado de datos.xls"
'Ahora ponemos activa la hoja donde quieres pegar los datos
Sheets("Aquí pones el nombre de la hoja ").Select
'Elegimos la celda donde pegar los datos
'Range("A1").Select
'Pegamos los datos copiados
ActiveSheet.Paste
'Ahora dejamos activo el libro que queremos cerrar
ActiveWindow.WindowState = xlMinimized
' a continuacion he puesto el libro que debe de cerrar puesto que el otro es el que debe de quedar abierto para seguri trabajando
Windows("C:\datos.xls").Activate
ActiveWindow.Close
ActiveWindow.WindowState = xlMaximized
End Sub
Espero que ahora si te funcione he corregido algunas cosas, si no estoy en lo correcto respecto a que libro debe cerrarse y cual debe quedar activo lo cambias tú, el problema de la hoja ya lo tienes resuelto, aquí va el código.
Hola Julio, sigue sin funcionar la hoja de datos es la que se tiene que quedar cerrada y la que se debe de quedar abierta es pa de pegado de datos que es donde trabajo.
Un saludo
Antonio
Hola Julio, aclaración:
La macro se tiene que ejecutar al abrir la hoja pegado de datos y una vez que ha pegado los datos procedentes de la hoja datos esta ultima "datos" se tiene que cerrar ya que seguimos trabajando con la hoja "pegado de datos".
Por si te vale de ayuda
Gracias.-
Perdona necesito que me hables de LIBROS, no de hojas. Haber explicame todos los pasos de esta forma:
1º Abro el LIBRO Datos (no hoja sino libro)
2º Quiero copiar los datos que hay en una hoja que se llama "Hoja de datos"
3º Ahora quiero abrir el LIBRO (el que sea su nombre)
4º Ahora quiero pegar los datos copiados en la hoja (el nombre de la hoja donde quieres pegarlos)
5º Ahora quiero cerrar el LIBRO (el nombre del libro que quieras cerrar)
6º Dejo el LIBRO (el que sea) con la hoja activa (la que sea) activo para seguir introduciendo datos.
A ver si así me entero y te puedo crear la macro, también me pones el rango de celdas que quieras copiar. Venga un saludo espero tu aclaración
Julo
A ver Julio:
1º yo abro el libro (C:\visitas.xls)
2º ahora de debe de ejecutar la macro que abra el libro (c:\kilometros.xls) dentro de este libro hay una hoja llamada (resumen de kilómetros)
3º copiar de la hoja resumen de kilómetros desde A1:F350 copiar
4º en el libro (c:\kilometros.xls) dentro de la hoja (toma de datos) pegar los datos copiados también en el mismo rango A1:F350.
5º una vez copiados los datos dentro del libro (c:\visitas y hoja (toma de datos)) se cierra el libro (C:\kilometros.xls)
6º el libro (c:\ visitas.xls) sigue abierto para seguir trabajando.
Gracias julio y gracias por tu compresión.
Por fin todo aclarado abres el Libro C:\visitas.xls después herramientas, macros, Editor de Visual Basic y le pegas esta macro :
Sub Auto_Open()
ChDir "C:\"
Workbooks.Open Filename:="C:\kilometros.xls"
Sheets("Resumen de Kilometros").Select
Range("A1:F350").Select
Selection.Copy
Sheets("Toma de Datos").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Resumen de Kilometros").Select
Range("A1").Select
ActiveWorkbook.Save
ActiveWindow.Close
Range("A1").Select
End Sub
Ya la tienes, pruebalá y me cuentas, ASEGURATE QUE LAS HOJAS TIENEN EL NOMBRE QUE YO HE PUESTO, y si no pues o bien lo cambias en la macro o bien lo cambias en el Libro Un saludo
Julio.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas