** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Word
  Mensajes nuevos Mensajes nuevos RSS - Hipervínculos en Word
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoHipervínculos en Word

 Responder Responder
Autor
Mensaje
Jehosuah Ver desplegable
Habitual
Habitual


Unido: 24/Agosto/2009
Localización: España
Estado: Sin conexión
Puntos: 136
Enlace directo a este mensaje Tema: Hipervínculos en Word
    Enviado: 30/Junio/2024 a las 11:51
Hola amigos
Estoy creando un documento en Word, para después pasarlo a pdf. 
Este documento tiene muchas miniaturas de imágenes en las que pongo hipervínculos para visualizar las imágenes en grande.
Funciona muy bien, pero tengo un problema serio: Cada vínculo queda establecido para la ruta absoluta de la imagen, pero necesito que sea una ruta relativa, para poder compartir este documento y que otras personas puedan abrir las imágenes independientemente de la carpeta o unidad en la que está el libro.
El libro lo tengo en una carpeta en la que hay carpetas con diferentes tipos de imágenes, y los vínculos deberían buscar dentro de esta carpeta sin tener en cuenta en qué unidad o carpeta está instalada la carpeta general de este documento.
Muchas gracias por vuestra atención y ayuda.
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14926
Enlace directo a este mensaje Enviado: 01/Julio/2024 a las 10:40
Hola,

Creo que deberías modificar la ruta del vínculo para sustituir la parte "variable" por un .

Si ejecutamos desde C:\Users\Public\Documents y tenemos los ficheros en la subcarpeta "imagenes", deberías cambiar el hipervínculo de

C:\Users\Public\Documents\imagenes

a

.\imagenes

Lo malo es que no sabria como hacerlo para un monton de hipervinculos. A ver si alguien nos aporta algo de luz.

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3535
Enlace directo a este mensaje Enviado: 01/Julio/2024 a las 15:36
Hola.
Siguiendo la idea de Xavi y 'supongamos que las fotos están, por ejemplo, en C:\Users\usuario\Desktop\provesWord2\imagenes\imagen1.jpg  y tenemos que dejar algo como imagenes\imagen1.jpg para hacer referencia a una carpeta llamada imagenes que está dentro de la carpeta del word y a continuación el nombre de la imagen.

El siguiente código recorre todos los "hyperlinks" del documento y cambia/recorta sus "direcciones"

Public Sub cambiavinculos()
Dim mivinculo As Hyperlink
Dim micarpeta As String
micarpeta = LCase("C:\Users\usuario\Desktop\provesWord2\")
For Each mivinculo In ActiveDocument.Hyperlinks
 If InStr(LCase(mivinculo.Address), micarpeta) <> 0 Then
   ''''MsgBox (mivinculo.Address)
   mivinculo.Address = Replace(LCase(mivinculo.Address), micarpeta, "")
 Else
 MsgBox ("no esta")
 End If
Next
Espero que al menos sirva como idea para poder solucionar el problema.
Ya comentas si sirve para algo.
Un saludo a todos
Arriba
Jehosuah Ver desplegable
Habitual
Habitual


Unido: 24/Agosto/2009
Localización: España
Estado: Sin conexión
Puntos: 136
Enlace directo a este mensaje Enviado: 01/Julio/2024 a las 21:29
Hola amigos.
En primer lugar, muchas gracias por vuestra ayuda.
En cuanto a lo que dices, Xavi, funciona bien lo del punto. Genial.
La aportación de Prga, podría ser fantástica, pero me encuentro con serios problemas para llevarla a cabo: En primer lugar, nunca he utilizado código en Word, al contrario que en Access, pero veo que no tiene nada que ver uno con otro. He visto un video en youtube que dice que hay que insertar un objeto como otro documento de word y ponerlo como icono, incluyendo en ese documento el código. Lo he hecho pegando tu código, pero luego no sé cómo ejecutar ese objeto para que el código haga su trabajo.
Por otro lado, aquí pongo el código tal como lo he modificado, para saber si está bien.

Public Sub cambiavinculos()

Dim mivinculo As Hyperlink

Dim micarpeta As String

micarpeta = LCase("E:\ASTROLOGÍA\Astrología Psicológica")

For Each mivinculo In ActiveDocument.Hyperlinks

 If InStr(LCase(mivinculo.Address), micarpeta) <> 0 Then

   ''''MsgBox (mivinculo.Address)

   mivinculo.Address = Replace(LCase(mivinculo.Address), micarpeta, ".")

 Else

 MsgBox ("no esta")

 End If

Next


He puesto la carpeta donde está el documento y las carpetas con archivos, y en el replace, en lugar de dejarlo en blanco "" he puesto el punto que dice Xavi "." Espero haberlo hecho bien.

Pues eso, que no sé cómo ejecutar esto.

Muchas gracias por vuestra paciencia.

Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3535
Enlace directo a este mensaje Enviado: 02/Julio/2024 a las 10:17
Hola.
Aclaro que este sería un código de usar y tirar, vamos lo que hace es cambiar los vínculos de los "mil" casos que pueda haber con una dirección absoluta.
Se supone que los nuevos vínculos que se creen ya estarán con la dirección relativa, vamos con el ".".
Hecha esta salvedad, en el word en cuestión pulsando Alt+F11 se abre el editor del VBA del word ( y salvo error los de todos los del office) y aparecerá a la "izquierda" algo como thisdocument, se abre y se pega el código que has puesto. Se ejecuta el código y en un momento, salvo error, ya se habrán "actualizado" todos los hipervínculos que haya en el documento. Se guarda el documento con la opción de sin macros ya que en un principio ya no se va a volver a utilizar este código.
Todo el proceso está escrito de memoria, vamos no está comprobado
Espero que la larga explicación sirva para resolver la duda.
ya comentas.
Un saludo a todos

Arriba
Jehosuah Ver desplegable
Habitual
Habitual


Unido: 24/Agosto/2009
Localización: España
Estado: Sin conexión
Puntos: 136
Enlace directo a este mensaje Enviado: 02/Julio/2024 a las 18:56
¡Socorro!
He abierto el  editor de VBA, en la barra de herramientas, a la izquierda he abierto un desplegable y he seleccionado Modulo. No he visto otra forma. He pegado el código, le he añadido End Sub al final, que faltaba, y lo he ejecutado. Salía continuamente el mensaje de No esta, que aparece en el código, y no acababa nunca, así que he cancelado, y he vuelto a empezar, quitando ese mensaje del código y poniendo otro fuera y antes del end sub para indicar que ya ha acabado. Lo he ejecutado y enseguida ha aparecido el mensaje de ya ha acabado.
La sorpresa es que ahora en todos los hipervínculos que dirigían a un marcador en el documento aparecen las palabras Hipertext con el nombre del marcador entre llaves, sustituyendo al texto que contenía el marcador, y en algunas miniaturas se ha añadido también esas palabras. Hay otras miniaturas que están bien, así que no sé si eso lo ha hecho con todo lo que no estaba con el vínculo absoluto  que buscaba. 
Y lo malo es que ahora, cualquier copia que abro visualiza todo eso igual, aunque no le haya pasado el código.
Por favor, un cable.

Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3535
Enlace directo a este mensaje Enviado: 04/Julio/2024 a las 10:24
Hola.
Ya comenté que el código tal como está es de "usar y tirar", vamos, en teoría cambia los vínculos absolutos(de la cadena buscada) por un vínculo relativo, apto para cualquier carpeta donde se "instale" el programa y todas las copias que se hagan se supone que tendrán el vinculo relativo.
Si se tienen otros vínculos absolutos (por eso aparecía 'no esta'), se tendrá que repetir el proceso cambiando la "ruta" absoluta por el ".".
Como comentaste, o eso me pareció entender,  que el word se convierte en PDF para trabajar con ese PDF, cualquier solución en word que lleve código, dicho código en un principio no se pasará al PDF. De ahí la solución de "usar y tirar"
Todo lo anterio,r evidentemente no soluciona el problema, pero al menos a mí, sin tener el problema real para hacer pruebas, no se me ocurre nada para solucionar la cuestión
Esperemos mejores opiniones
Un saludo a todos

Arriba
Jehosuah Ver desplegable
Habitual
Habitual


Unido: 24/Agosto/2009
Localización: España
Estado: Sin conexión
Puntos: 136
Enlace directo a este mensaje Enviado: 04/Julio/2024 a las 19:56
Gracias, Prg, iré haciendo pruebas. Y gracias también a Xavi.
Un abrazo.
Arriba
Jehosuah Ver desplegable
Habitual
Habitual


Unido: 24/Agosto/2009
Localización: España
Estado: Sin conexión
Puntos: 136
Enlace directo a este mensaje Enviado: 04/Julio/2024 a las 20:30
Bueno, el susto de que me quitara texto y me lo cambiara por hiperlink... ya lo tengo claro: Alt-F9 alterna entre ver el texto o el código, así que parece que al pasar el código que me pasaste, se queda en vista de código, como si hubiera pulsado Alt-F9 así que con volver a pulsar esas teclas ya se ve todo normal. Ahora seguiré probando a ver si tengo que volver a pasar el código con otras rutas absolutas.
Muchas gracias otra vez y un saludo
Arriba
Jehosuah Ver desplegable
Habitual
Habitual


Unido: 24/Agosto/2009
Localización: España
Estado: Sin conexión
Puntos: 136
Enlace directo a este mensaje Enviado: 05/Julio/2024 a las 20:12
Ya está, todo cambiado. Ha ido de maravilla y me has ahorrado mucho trabajo.
Muchas gracias, y también a Xavi.
Podéis cerrar el hilo.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable