20 octubre, 2021

PROGRAMAR HIPERVÍNCULOS EN VBA. EJEMPLO PRÁCTICO CON GOOGLE MAPS

Hola a todos:

Hoy os voy a mostrar una forma de programar hipervínculos que estoy seguro os parecerá interesante. La idea es la de crear un proceso dinámico y automático y no solo conformarnos con invocar el método Hyperlink.

Por ejemplo, se me ocurre que si escribo una serie de lugares en mi hoja Excel y decido crear una ruta de viaje, si seleccionase esas celdas podría mostrar esa información en un navegador (el que tenga definido como predeterminado) con google maps.

Vamos a ver un ejemplo:

PROGRAMAR HIPERVÍNCULOS EN VBA. EJEMPLO PRÁCTICO CON GOOGLE MAPS

Estas son las rutas de viaje que me he propuesto y con las que casi voy a dar la vuelta a España, gran viaje!!

Para poder hacerlo y llevarlo a cabo os mostraré el código que voy a utilizar:

Sub MAPA()
'Declaramos las variables
Dim Matriz As Object, Palabra As Variant, Area As Object
Dim alfaDato As Variant, iPalabra As String
'Creamos colección arraylist para ir agregando los elementos de la matriz
Set Matriz = CreateObject("System.Collections.ArrayList")
'Trabajamos con la hoja activa
With ActiveSheet
Set Area = Application.Intersect(Selection, .UsedRange)
'Controlamos que existan datos seleccionados
On Error GoTo Control
'Por cada objeto/palabra del rango seleccionado
For Each Palabra In Area
'Añadimos cada palabra a la matriz con un loop
Matriz.Add Palabra
Next Palabra
'Pasamos los datos a una cadena de texto
For Each alfaDato In Matriz
iPalabra = iPalabra & "/" & alfaDato
Next alfaDato
OrdenarAlfa = Trim(iPalabra)
'Abrimos explorador y mostramos la ruta
Url = "https://www.google.com/maps/dir" & OrdenarAlfa
ActiveWorkbook.FollowHyperlink Url, NewWindow:=False
'mostramos mensaje de error
Control: If Err.Number = "424" Then
MsgBox ("EL RANGO O LAS CELDAS SELECCIONADAS NO CONTIENEN DATOS"), vbExclamation, "SIN DATOS SELECCIONADOS"

Exit Sub
End If
'Limpiamos variable de objeto
Set Matriz = Nothing
Set Area = Nothing
End With
End Sub

Como podéis ver, además del método Workbook.FollowHyperlink tambíen he introducido la creación de una cadena y una matriz con los datos seleccionados.

Este método os puede servir para muchos trabajos de programación en Excel y otros lenguajes.

El resultado es este, unas 34 horas de viaje y unos cuantos sitios que visitar : )

PROGRAMAR HIPERVÍNCULOS EN VBA. EJEMPLO PRÁCTICO CON GOOGLE MAPS_1

Este ejercicio es meramente orientativo y para que aprendáis cómo podemos utilizar y programar los hipervínculos en Excel.

Y eso es todo, ¿os parece interesante?.

Descarga el archivo de ejemplo pulsando en:

Donate Button with Credit Cards

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.



¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

4 comentario en “PROGRAMAR HIPERVÍNCULOS EN VBA. EJEMPLO PRÁCTICO CON GOOGLE MAPS

  1. Este ejemplo me parece muy práctico. Sobre todo por la facilidad para planificar rutas con puntos intermedios, que a través de la web puede ser bastante más lento.
    Gracias como siempre por compartir tus conocimientos.

  2. Hola , me parece muy interesante , baje el ejemplo pero cuando lo ejecuto me un error en esta linea , Set Matriz = CreateObject("System.Collections.ArrayList"), si me puede orientar como puedo solucionar esto , estoy usando office 2016.
    Gracias de antemano
    Saludos

    1. Hola Domingo: Por lo que veo necesitas tener instalado en el equipo una versión espcífica de framework, la 3.5, pero no te puedo ayudar en concreto con este asunto. Puedes hacer una búsqueda en internet sobre el tema.

      Saludos

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies