- con el menú Insertar-Hipervínculo en Excel Clásico o Hipervínculo en la pestaña Insertar de Excel 2007 (o con el atajo de teclado Ctrl+Alt+K en ambas versiones de Excel o con el menú contextual)
- usando la función HIPERVINCULO
Este último método tiene la ventaja de permitirnos crear ubicación del vínculo, es decir el texto con la ruta del archivo, en forma dinámica.
Con dinámica nos referimos a que en lugar de un texto fijo, ponemos una referencia a una celda que contiene el texto. De esta manera, podemos cambiar el texto en la celda y la referencia cambiará automáticamente.
Esta técnica puede ser muy útil en ciertas situaciones. Por ejemplo, si tenemos hipervínculos a varios archivos en una carpeta y por algún motivo debemos moverlos a otra carpeta. Los hipervínculos creados con el menú no son dinámicos y al mover los archivos dejarán de funcionar. En estos casos la solución será usar macros, que mostraremos más adelante.
En este ejemplo podemos ver que la ruta del archivo se crea combinando el valor de B1 con el nombre del archivo
De esta manera, si movemos el archivo a otra carpeta todo lo que tenemos que hacer es cambiar el valor de la celda B1.
Pero la vida, como siempre, nos enfrenta a situaciones más complicadas. Como el caso de uno de mis lectores que fue creando hipervínculos a archivos guardados en una carpeta y verse necesitado a moverlos a otra carpeta. Como los hipervínculos no fueron creados con la función, sólo tenemos dos alternativas: o cambiar cada vínculo manualmente o usar una macro.
Vamos a mostrar una macro sencilla para reemplazar la ruta de todos los hipervínculos en una hoja. En esta hoja hemos creado cuatro hipervínculos a archivos en la carpeta “D:\My Documents\temp”.
Si queremos cambiar la ruta a “D:\My Documents\blog” podemos usar esta macro
Sub hipervinc_cambio()
Dim hpVinc As Hyperlink
Dim strOldAddress As String, strNewAddres As String
strOldAddress = "D:\My Documents\blog\"
strNewAddres = "D:\My Documents\algodistinto\"
For Each hpVinc In ActiveSheet.Hyperlinks
hpVinc.Address = Replace(hpVinc.Address, strOldAddress, strNewAddres)
Next
End Sub
Esta es una macro simplificada a los solos efectos de demostrar cómo cambiar los vínculos programáticamente.
En lugar de poner las rutas en el cuerpo del código podemos ponerlas en celdas de la hoja y modificar el código de acuerdo.
Por ejemplo podemos usar las celdas E1 y E2 para alojar el texto de la ruta
y usar esta rutina
Sub hipervinc_cambio()
Dim hpVinc As Hyperlink
Dim strOldAddress As String, strNewAddres As String
strOldAddress = Range("E1")
strNewAddres = Range("E2")
For Each hpVinc In ActiveSheet.Hyperlinks
hpVinc.Address = Replace(hpVinc.Address, strOldAddress, strNewAddres)
Next
End Sub