Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Crear hipervínculos con VBA

| 3 comentarios

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

Crear Hipervínculo en Excel

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

 

3 comentarios

  1. 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

  2. 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.

  3. 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.

Deja una respuesta

Los campos requeridos estan marcados con *.