Hacer Referencias a los vinculos en el Código

16/11/2007 - 10:22 por Thebigmik | Informe spam
Hola,

quiero cambiar un vínculo en código, uso el metodo ChangeLink
pero quiero que el usuario lo elija de una ventana exploradora, eso lo
consigo poniendo un nombre de vinculo erroneo como destino.

ActiveWorkbook.ChangeLink "C:\VinculoDeOrigen.xls", "C:
\VinculoErroneo.xls", xlExcelLinks
'Hace saltar una ventana para examinar

cuando se selecciona el vinculo da su ruta correctamente, pero el
nombre del vínculo ahora es "C:\VinculoErroneo.xls" aunque su ruta sea
otra, por ejemplo "C:\Datos_A_Vincular\VinculoCorrecto.xls"

El problema que ocurre es que no encuentro forma de recoger la ruta
del vinculo desde el codigo, siempre recogo el nombre y mi deseo final
es asociar otro vínculo a ese vínculo para que contengan la misma
ruta.

Me parece que los vinculos no se pueden tratar como objetos ¿no?

Introduzco todos los vínculos en un array, pero la verdad es que no me
sirve de mucho
Alinks = ActiveWorkbook.LinkSources(xlExcelLinks)
For i = 1 To UBound(Alinks)

Next i

Voy a intentar simplificar el problema ... lo que quiero es capturar
la ruta de un vinculo para asociarselo a otro, si no se puede hacer
así si alguien tiene otro forma de atacar este problema.

Gracias y perdón por todo el lio
 

Leer las respuestas

#1 Héctor Miguel
17/11/2007 - 05:05 | Informe spam
hola, (...) ?

si lo (unico) que necesitas es "enterarte" de cual ha sido la seleccion del usuario para cambiar varios vinculos
prueba con el metodo GetOpenFileName que "simula" una apertura de archivos pero solo devuelve la ruta completa (p.e.)

Dim Vinculo_Nuevo As String
Vinculo_Nuevo = Application.GetOpenFilename( _
"Archivos de excel (*.xls), *.xls", , "Selecciona el vinculo correcto !")
If Dir(Vinculo_Nuevo) = "" Then MsgBox "Operacion cancelada !!!": Exit Sub
MsgBox "Puedes usar este archivo para modiicar tus vinculos:" & vbCr & Vinculo_Nuevo

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
quiero cambiar un vinculo en codigo, uso el metodo ChangeLink
pero quiero que el usuario lo elija de una ventana exploradora
eso lo consigo poniendo un nombre de vinculo erroneo como destino.
ActiveWorkbook.ChangeLink "C:\VinculoDeOrigen.xls", "C:\VinculoErroneo.xls", xlExcelLinks
'Hace saltar una ventana para examinar
cuando se selecciona el vinculo da su ruta correctamente, pero el nombre del vinculo ahora es "C:\VinculoErroneo.xls"
aunque su ruta sea otra, por ejemplo "C:\Datos_A_Vincular\VinculoCorrecto.xls"
El problema que ocurre es que no encuentro forma de recoger la ruta del vinculo desde el codigo
siempre recogo el nombre y mi deseo final es asociar otro vínculo a ese vínculo para que contengan la misma ruta.
Me parece que los vinculos no se pueden tratar como objetos no?
Introduzco todos los vínculos en un array, pero la verdad es que no me sirve de mucho
Alinks = ActiveWorkbook.LinkSources(xlExcelLinks)
For i = 1 To UBound(Alinks)

Next i
Voy a intentar simplificar el problema ... lo que quiero es capturar la ruta de un vinculo
para asociarselo a otro, si no se puede hacer asi si alguien tiene otro forma de atacar este problema.

Preguntas similares