jueves, 4 de abril de 2019

VBA: Modificar Hyperlinks en Excel

Un usuario preguntaba por la forma de modificar el texto mostrado en unas celdas con un listado de vínculos a una URLs.

VBA: Modificar Hyperlinks en Excel



El objetivo es que el hipervícunlo siga dirigiéndonos a la misma URL, pero el texto mostrado quede reducido al nombre de la página concreta...

VBA: Modificar Hyperlinks en Excel



Insertamos un módulo estándar, y en esta ventana de código añadiremos nuestra macro:

Sub LimpiarHipervinculos()
'recorremos cada celda del rango seleccionado
For Each celda In Selection
    'determinamos que la celda Sí contiene un vínculo
    If celda.Hyperlinks.Count > 0 Then
        'asignamos el texto del vínculo
        texto = celda.Hyperlinks(1).Name
        'y lo tratamos para quedarnos con un texto final a mostrar
        'con la función Split separamos las partes de la url 
        'y nos quedamos con la tercera con www.xxxxx.xxx
        nuevo = Replace(Split(texto, "/")(3), ".htm", "")
        'finalmente construimos el vínculo en la celda
        'con el mismo vínculo pero con un texto mostrado nuevo
        ActiveSheet.Hyperlinks.Add Anchor:=celda, _
                Address:=texto, _
                TextToDisplay:=nuevo
    End If
Next celda
End Sub



Relevante es la condición que nos permite detectar si la celda tiene un hipervínculo:
If celda.Hyperlinks.Count > 0 Then

y por otra parte la descomposición de la URL aprovechándonos de las barras /
Split(texto, "/")(3)
el tres nos permite recuperar la parte final de la URL...

El resto es simple al recomponer el hipervínculo con los valores tratados.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.