Como puedo vincular 2 libros con vb

Estoy buscando un código para hacer un enlace entre 2 libros por medio de un código vb usando un botón de comando.

Lo hice por medio de hipervínculos pero no me gusta esa forma,, además al trasladar los libros a otra pc,, los hipervínculos se pierden, así que busco hacerlo por medio de código,, haciendo como una macro

Intente pero no dio resultado.

Cual seria el código para ir y regresar entre 2 libros, sin que me pida al regresar (" el otro libro ya esta abierto, desea guardar - cancelar") me sale ese mensaje

Respuesta
1

No me queda mu claro lo que quieres, pero si te quieres mover entre un libros abiertos, es crear en una de las dos hojas una macro que mande llamar la información de los libros que debe quedar así,

x = Workbooks("libro2").Sheets("hoja1").Range("a1")
y = Workbooks("libro1"). Sheets("hoja1"). Range("a1")

o de esta forma mas corta, solo es cuestion de identificar el libro y traer la informacion que ecesitas, la 2a forma es mas facil puesto que solo tienes que poner libro1 o libro2 antes del range, en la primera tienes que poner woorkbooks("libro"). Sheets("hoja1") cada vez que escribas range, ojo hay un error que no me permite corregir esta pagina set libro1=worksheets("libro1"). Sheets("hoja1") en su lugar lo puse repetido

Sub test()
Set libro1 = Workbooks("libro2").Sheets("hoja1")
Set libro2 = Workbooks("libro2").Sheets("hoja1")
With libro2
    x = .Range("a1")
End With
With libro1
    y = .Range("a1")
End With
End Sub

Gracias, pero creo que no me comprendiste

Lo que busco es un botón que me traslade a otro libro y me traiga de vuelta con otro botón (en el libro destino) como un hipervínculo,,, así no más

Algo así

windows(libro1.xls).activate

esta instruccion lo hace pero no logro evitar la espabiladera,, ya q ambos libros tienen las barras y herramientas ocultas

He logrado hacer el vinculo,, con el código windows(libro1.xls).activate

Pero resulta que el libro2 tiene que estar abierto para que funcione la instrucción,,, hay alguna forma que al hacer clic en el botón de comando que contiene el código: windows(libro1.xls).activate

Abra o inicialice el otro libro2,, ¿es decir abrirlo desde el primer libro1?

Y la espabiladera cuando se ejecuta se puede quitar,,, es decir cuando se pasa de un libro a otro hace un efecto visual extraño, ¿se podría quitar?

Si vas a estar pasándote constantemente de un libro a otro yo creo que te conviene más declarar variables como las que te envíe en el primer post, hacer los cálculos en la memoria y mandar la información al libor que elijas o a ambos, a tu botón le puedes añadir estas dos líneas la primera crea un libro nuevo la segunda, abre un libro ya existente, solo tendrías que poner un inputbox y if para decir que quieres hacer si crea un libro o abrir uno ya existente

Sub CAMBIAR_LIBRO()
Workbooks.add
Workbooks.Open ("C:\ARCHIVOS EXCELL\TEST.XLSM")
Workbooks("SORTEOS_2019C.XLSM").Activate
End Sub

Hola

Gracias

SI funciona,, pero no se puede regresar al libro 2 por que aparece un mensaje que decí que el otro libro ya esta abierto y si doy cancelar no me deja entrar y si doy si no me lo muestra,,

tendre q usar solo la intruccion   windows(libro1.xls).activate   abriendo manualmente el libro2..


                    

gracias,,

sr agente 007  tuve una idea,

hice 2 botones de comando , uno para abrir el libro y el otro para el vinculo.. 

listo gracias,,

Lo que no logre es quitar el efecto visual cuando se hace el cambio

yo tuve otra ysolo que en mi maquina no  aparece el erro que te amrcq a ti de libro abierto, la idea es la siguiente, pones on error resume next y un if err.number, yo puse igual a 0 porque como te digo a mi no me aparece ese problema, en vez de cero pónes igaul al numero de error que te aparezca en el mensaje, sino hay error te abrira el libro, si hay error quieredecir que el libro esta abierto y la macro te enviara a el, lo del parpadeo tampoco se presenta en mi maquina prueba con application.screenupdating=false, al principio de la macro y luego al final lo pones en cerdadro

Sub cambiar_libro()
On Error Resume Next
    Workbooks.Open ("C:\ARCHIVOS EXCELL\TEST.XLSM")
    If Err.Number > 0 Then Workbooks("C:\ARCHIVOS EXCELL\TEST.XLSM").Activate
On Error GoTo 0
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas