Siguiendo en el tema de los hipervínculos, respondemos hoy a la consulta de un de mis lectores: ¿Cómo puedo hacer para crear un hipervínculo a una dirección de correo Outlook dependiendo del valor de una celda con una lista validada?
EL tema es más sencillo de lo que parece en principio, pero hay un pequeño problema por resolver, como en casi todos los aspectos de nuestras vidas.
Empecemos por notar que cuando ponemos en una celda de Excel un texto que sigue el patrón de una dirección de correo electrónico, Excel agrega automáticamente un hipervínculo de tipo “mailto:xxx@yyy.zzz”
Como ya sabemos, podemos crear una lista desplegable usando validación de datos. Para eso creamos una lista de direcciones de mail y le damos un nombre definido. Para más comodidad definimos un rango dinámico con DESREF
Luego creamos la lista desplegable con validación de datos-lista
Ponemos la lista desplegable en la celda B1, de manera que podamos elegir la dirección
El problema con este método, es que a diferencia de cuando introducimos la dirección manualmente, Excel no crea el hipervínculo
Existen dos remedios a esta situación:
1 – después de seleccionar el nombre apretamos F2 (edición) e inmediatamente después Enter.
2 – Creamos un evento de manera que las acciones señaladas en 1 sucedan automáticamente. En el módulo Vba de la hoja1 (en nuestro ejemplo) ponemos este código
Private Sub Worksheet_Change(ByVal Target As Range)
If Union(Target, [B1]).Address = [B1].Address Then
SendKeys "{F2}"
SendKeys "{Enter}"
Application.EnableEvents = False
End If
Application.EnableEvents = True
End Sub
La sentencia SendKeys imita el tecleado de F2 y Enter si la variable Target coincide con la celda que hemos definido como celda que contiene la dirección.
Technorati Tags: MS Excel
No hay comentarios.:
Publicar un comentario
Nota: sólo los miembros de este blog pueden publicar comentarios.