Cambiar Vinculos a otro Libro por código automáticamente

20/01/2006 - 23:52 por Juan Carlos Perez | Informe spam
Tengo un libro con vínculos a otros libros, que utilizo en varios
ordenadores, pero no en todos los libros no siempre están en la misma ruta
de archivos.
Por tanto, desearía crear una macro para que modificase todos los vinculos
de las hojas automáticamente.

Si alguien puede ayudarme, se lo agradecería

saludos

Juan Carlos Perez
Asturias-España

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
21/01/2006 - 05:52 | Informe spam
hola, Juan Carlos !

Tengo un libro con vinculos a otros libros, que utilizo en varios ordenadores
pero no en todos los libros siempre estan en la misma ruta de archivos.
... desearia crear una macro para que modificase todos los vinculos de las hojas automaticamente...



1) [te aseguro que] una practica mas 'sana'... es conservar los archivos vinculados en sus 'posiciones originales'

2) o puedes utilizar un complemento de Bill Manville [FindLink.xla -version 8.6-]
que te permite eliminar los vinculos, elaborar un reporte de cada objeto en el libro y sus vinculos, o ambas cosas
esta en la pagina de Stephen Bullen: http://www.bmsltd.ie/DLCount/DLCoun...ndLink.zip
[en caso de que la version donde trabajes no tenga las herramientas 'completas' para los vinculos] -?-

3) o puedes descargar el siguiente complemento [tendrias que instalarlo donde sea necesario]
-> Navigator Utilities: http://www.robbo.com.au/
aparte de que esta 'buenisimo'... [creo que vendrian de sobra comentarios adicionales]
seguiria teniendo 'la falla' de que si el vinculo se ha movido de ubicacion [o ha 'desaparecido' del sistema]...
sera necesario realizar una busqueda [y su reemplazo] de forma 'manual' :-(

4) o [de lo contrario]... desarrollar un procedimiento que 'escanee' las unidades 'disponibles' [incluir unidades en red ???]
que se encargue de 'ubicar' las [posibles] instancias del [o los] archivo/s 'movido/s'...
'avisar' por los 'desaparecidos' [si fuera el caso] y/o [posibles] 'duplicados' [indicando otras propiedades, como fecha...]
etc. etc. etc. o sea que probablemente 'salga mas caro... el caldo... que las albondigas'
[por aquello de utilizar llamadas a las API's, consumo de recursos y demora en la busqueda por las unidades, ...]

5) o... [simplemente] seguir usando las herramientas 'normales' para modificar los vinculos de los archivos
o la sugerencia de conservar los vinculos SIEMPRE en las ubicaciones 'originales'
[de ser posible... todo en un solo directorio, si el caso sera de 'traslados' de los archvos a diferentes pc's] ;)

saludos,
hector.
Respuesta Responder a este mensaje
#2 Juan Carlos Perez
21/01/2006 - 19:07 | Informe spam
Hola Héctor!

Gracias por tu rápida respuesta.

El tema es mas sencillo, pues en los otros ordenadores la ruta es siempre la
misma, por lo que creé una macro que reemplaza la ruta anterior (que utilizo
en el ordenador donde programo y hago pruebas), por la ruta real del
ordenador / ordenadores de trabajo, y me funciona bien.
No obstante se me plantea otro problema: no quería que los vínculos se
actualizasen automáticamente al abrir el libro, y NO encuentro ninguna
instrucción para evitarlo.
La aplicación consta de unos 6 archivos:
1 que utilizo para abrir los otros 5 libros:
Primero abre los 4 libros que utilizo como Bases de Datos para que
la actualización de vínculos sea rápida.
A continuación abre el Libro principal de trabajo (que tiene
vínculos a los otros 4)
Por último cierra todos los libros de BD y el propio libro de
apertura, quedando sólo abierto el Libro Principal

Esto es correcto desde que está instalado en el ordenador/es de trabajo.

Pero cuando sustituyo el Libro Principal en el ordenador/es de trabajo por
otro con mejoras que he creado en el ordenador de programación NO quería que
los vínculos se actualizasen al abrirlo, pues al no hallar la ruta original
(del ordenador de programación), sale el cuadro de diálogo para buscar los
archivos. Yo no quiero que salga este cuadro de diálogo, es decir, no
quiero, en este caso, que se actualicen automáticamente los vínculos al
abrir el libro, pues en el evento open del Libro Principal se ejecuta la
macro para sustituir la ruta de los vínculos anterior por la correcta, y se
actualiza en ese momento.

Saludos

Juan Carlos Perez
Asturias-España



"Héctor Miguel" escribió en el mensaje
news:
hola, Juan Carlos !

Tengo un libro con vinculos a otros libros, que utilizo en varios
ordenadores
pero no en todos los libros siempre estan en la misma ruta de archivos.
... desearia crear una macro para que modificase todos los vinculos de
las hojas automaticamente...



1) [te aseguro que] una practica mas 'sana'... es conservar los archivos
vinculados en sus 'posiciones originales'

2) o puedes utilizar un complemento de Bill Manville
[FindLink.xla -version 8.6-]
que te permite eliminar los vinculos, elaborar un reporte de cada
objeto en el libro y sus vinculos, o ambas cosas
esta en la pagina de Stephen Bullen:
http://www.bmsltd.ie/DLCount/DLCoun...ndLink.zip
[en caso de que la version donde trabajes no tenga las herramientas
'completas' para los vinculos] -?-

3) o puedes descargar el siguiente complemento [tendrias que instalarlo
donde sea necesario]
-> Navigator Utilities: http://www.robbo.com.au/
aparte de que esta 'buenisimo'... [creo que vendrian de sobra
comentarios adicionales]
seguiria teniendo 'la falla' de que si el vinculo se ha movido de
ubicacion [o ha 'desaparecido' del sistema]...
sera necesario realizar una busqueda [y su reemplazo] de forma
'manual' :-(

4) o [de lo contrario]... desarrollar un procedimiento que 'escanee' las
unidades 'disponibles' [incluir unidades en red ???]
que se encargue de 'ubicar' las [posibles] instancias del [o los]
archivo/s 'movido/s'...
'avisar' por los 'desaparecidos' [si fuera el caso] y/o [posibles]
'duplicados' [indicando otras propiedades, como fecha...]
etc. etc. etc. o sea que probablemente 'salga mas caro... el caldo...
que las albondigas'
[por aquello de utilizar llamadas a las API's, consumo de recursos y
demora en la busqueda por las unidades, ...]

5) o... [simplemente] seguir usando las herramientas 'normales' para
modificar los vinculos de los archivos
o la sugerencia de conservar los vinculos SIEMPRE en las ubicaciones
'originales'
[de ser posible... todo en un solo directorio, si el caso sera de
'traslados' de los archvos a diferentes pc's] ;)

saludos,
hector.


Respuesta Responder a este mensaje
#3 Héctor Miguel
21/01/2006 - 19:22 | Informe spam
hola, Juan Carlos !

[hasta donde se] para 'brincar' el aviso de 'vinculos externos'... se necesita abrir el libro que tiene los vinculos ...
-> 'desde' otro libro y estableciendo la propiedad UpdateLinks +/- como en la siguiente instruccion:
-> Workbooks.Open ThisWorkbook.Path & "\Libro Principal.xls", UpDateLinks:=1
-> los valores para 'UpdateLinks' pueden ser:
0 => NO actuaiza ninguno de los vinculos externos
1 => actualiza SOLO los vinculos externos a libros de excel [por omision]
2 => actualiza vinculos OLE/DDE
[consulta la ayuda de vba en relacion con otros tipos de vinculos] :))
-> si lo abres con UpdatelInks:=0 NO se ejecuta ninguna macro ni evento de 'auto-apertura' <= OJO
a menos que uses una instruccion 'expresa' [p.e.] luego de abrir dicho libro. ejemplo:
en el evento '_open' DE UN TERCER libro SOLO para abrir el 'Libro Principal' ==Private Sub Workbook_Open()
Workbooks.Open ThisWorkbook.Path & "\Libro Principal.xls", UpDateLinks:=0
Workbooks("Libro Principal.xls").RunAutoMacros xlAutoOpen
ThisWorkbook.Close False
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=> El tema es mas sencillo, pues en los otros ordenadores la ruta es siempre la misma
por lo que cree una macro que reemplaza la ruta anterior (que utilizo en el ordenador donde programo y hago pruebas)
por la ruta real del ordenador / ordenadores de trabajo, y me funciona bien.
... se me plantea otro problema: no queria que los vinculos se actualizasen automaticamente al abrir el libro
y NO encuentro ninguna instruccion para evitarlo [...]
... cuando sustituyo el Libro Principal en ordenador/es de trabajo por otro con mejoras... creado en el ordenador de programacion
NO queria que los vinculos se actualizasen al abrirlo, pues al no hallar la ruta original (del ordenador de programacion)
sale el cuadro de dialogo para buscar los archivos... no quiero... que se actualicen automaticamente los vinculos al abrir el libro
pues en el evento open del Libro Principal se ejecuta la macro para sustituir la ruta de los vinculos... por la correcta, y se actualiza ...
Respuesta Responder a este mensaje
#4 Juan Carlos Perez
21/01/2006 - 20:36 | Informe spam
Gracias, de nuevo, Hector!

Funciona correctamente, como yo quería, pues no tengo ninguna macro
auto-open. El código a ejecutar al abrir el libro lo tengo en el evento
open del libro.

Saludos

Juan Carlos Perez
Asturias-españa

"Héctor Miguel" escribió en el mensaje
news:u%
hola, Juan Carlos !

[hasta donde se] para 'brincar' el aviso de 'vinculos externos'... se
necesita abrir el libro que tiene los vinculos ...
-> 'desde' otro libro y estableciendo la propiedad UpdateLinks +/- como en
la siguiente instruccion:
-> Workbooks.Open ThisWorkbook.Path & "\Libro Principal.xls",
UpDateLinks:=1
-> los valores para 'UpdateLinks' pueden ser:
0 => NO actuaiza ninguno de los vinculos externos
1 => actualiza SOLO los vinculos externos a libros de excel [por
omision]
2 => actualiza vinculos OLE/DDE
[consulta la ayuda de vba en relacion con otros tipos de vinculos]
:))
-> si lo abres con UpdatelInks:=0 NO se ejecuta ninguna macro ni evento
de 'auto-apertura' <= OJO
a menos que uses una instruccion 'expresa' [p.e.] luego de abrir dicho
libro. ejemplo:
en el evento '_open' DE UN TERCER libro SOLO para abrir el 'Libro
Principal' ==> Private Sub Workbook_Open()
Workbooks.Open ThisWorkbook.Path & "\Libro Principal.xls", UpDateLinks:=0
Workbooks("Libro Principal.xls").RunAutoMacros xlAutoOpen
ThisWorkbook.Close False
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=>> El tema es mas sencillo, pues en los otros ordenadores la ruta es siempre
la misma
por lo que cree una macro que reemplaza la ruta anterior (que utilizo en
el ordenador donde programo y hago pruebas)
por la ruta real del ordenador / ordenadores de trabajo, y me funciona
bien.
... se me plantea otro problema: no queria que los vinculos se
actualizasen automaticamente al abrir el libro
y NO encuentro ninguna instruccion para evitarlo [...]
... cuando sustituyo el Libro Principal en ordenador/es de trabajo por
otro con mejoras... creado en el ordenador de programacion
NO queria que los vinculos se actualizasen al abrirlo, pues al no hallar
la ruta original (del ordenador de programacion)
sale el cuadro de dialogo para buscar los archivos... no quiero... que se
actualicen automaticamente los vinculos al abrir el libro
pues en el evento open del Libro Principal se ejecuta la macro para
sustituir la ruta de los vinculos... por la correcta, y se actualiza ...





Respuesta Responder a este mensaje
#5 KL
22/01/2006 - 02:48 | Informe spam
Hola chicos,

"Héctor Miguel" wrote in message
3) o puedes descargar el siguiente complemento [tendrias que instalarlo donde sea necesario]
-> Navigator Utilities: http://www.robbo.com.au/
aparte de que esta 'buenisimo'... [creo que vendrian de sobra comentarios adicionales]



Alucino! Es un pedazo de complemento. Creo que MS deberia incluirlo como estandar. Me he quitado de encima varios complementos que
he usado hasta la fecha (incluidos el FindLink y NameManager) y no se si volvere a usar los menus Edicion>Vinculos...,
Edicion>Encontrar..., Edicion>Reemplazar..., Insertar>Nombre>Definir... y alguno que otro mas :-O

Saludos,
KL
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida