En estos ejemplos veremos como crear hipervínculos con VBA, tengamos en cuenta que los hipervínculos pueden crear para hacer referencia una ubicación dentro del mismo archivo (u otro oarchivo) o también una dirección de internet.
En este ejemplo podemos observar como en la propiedad Address se coloca el URL completo, y en la propiedad TextToDisplay se coloca el nombre que debe aparecer en la celda.
Sub Macro1()
Range("H4").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"https://www.excel-avanzado.com", TextToDisplay:="Excel Avanzado"
End Sub
Cuando se necesita que aparezca un ScreenTip ( un recuadro pequeño) se puede añadir esa propiedad tal como se muestra en el siguiente código:
Sub hyper()
With Worksheets(1)
.Hyperlinks.Add Anchor:=.Range("c7"), Address:="https://www.excel-avanzado.com", _
ScreenTip:="Excel Avanzado", TextToDisplay:="Sitio de Excel Avanzado"
End With
End Sub
En el siguiente ejemplo primero definimos las variables a utilizar, luego definimos el numero de fila de inicio en este caso iniciara a generar los hipervinculos desde la fila 4
La macro se aplicará en la hoja activa, como los botones que invocan al macro se encuentran en la hoja1, las macro se ejecutará en la hoja1 (por ser la hoja activa)
Por medio del código For Each hoja In Worksheets se realiza una iteración que permite trabajar con cada hoja disponible en el archivo.
Sub generarhipervinculo()
Dim hojaactiva As String
Dim filainicio As Long
filainicio = 4
hojaactiva = ActiveSheet.Name
For Each hoja In Worksheets
' con este hacemos que no utilice la hoja activa, ya que alli se colocaran los hipervinculos, en este caso no considerara la hoja 1
If hojaactiva <> hoja.Name Then
'activamos la celda donde se colocarán los hipervínculos y adicionalmente nos posicionamos en la filainicio (que inicialmente vale 4) y la columa 2
ActiveSheet.Cells(filainicio, 2).Select
'el siguiente código crea el hipervínculo
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=hoja.Name & "!A1", TextToDisplay:=hoja.Name
filainicio = filainicio + 1
End If
Next hoja
End Sub
Eliminar hipervínculos con VBA
Para efectos del ejercicio anterior, en el que se necesita eliminar los hipervínculos previamente creados podemos usar:
Sub Eliminar_Hipervinculo()
Columns("B:B").Select
Selection.Hyperlinks.Delete
End Sub
De esta forma eliminaremos todos los hipervínculos existentes en la columna B de la hoja activa.
También podemos examinar: Eliminar hipervículos para que independientemente al rango en que se encuentren se pueda proceder a eliminar todos los hipervínculos.
Descargar archivo con ejemplos mostrados: Crear hipervínculos con VBA
12/03/2020 a las 9:28 pm
SALUDOS
Quiero elaborar una macro que me habra un link a Google maps con una latitud y una longitud especificas
Me podrian ayudar indicandome como debe ser la escritura de la macro
10/04/2020 a las 1:10 pm
Estoy buscando una solución a una macro sencilla,a ver si podéis echarme una mano.
Tengo un macro q hace de buscador de tareas, 1 hoja que ws donde tengo la base de datos. Cada tarea tiene un hipervínculo que está alojada en otra hoja del mismo libro.
Cuando busco 1 tarea o tareas con un objetivo similar, lo realiza correctamente, pero el hipervínculo, no me funciona en el buscador.
Cabe la.posibilidad de asociar el hipervínculo al texto especifico, ya que en la busqueda, dependiendo de cual sea, variara la posición en la tabla del buscador.
30/04/2020 a las 3:19 am
Buenos días
Actualmente tengo que crear una macro que me permita seleccionar un rango de columnas y todas las imágenes que estén hipervinculadas, sean movidas de la carpeta actual a una nueva carpeta con un nuevo nombre que previamente se le he de dar en algún inputbox. Me podrían orientar por favor.
Muchas gracias.