Hola a todos:
En el post de hoy vamos a comprobar que es posible crear un «pop up» en una imagen vinculado al movimiento del cursor cuando pasa por encima.
Sobre este asunto no existe muchas alternativas en Excel, dado que las imágenes, formas o iconos no permiten o carecen de eventos como los pop up o información emergente.
Pero existe una forma o técnica que nos puede ayudar a realizar la tarea comentada. Es decir, un hipervínculo programado con VBA. Sobre las características os remito a este enlace: Método Hyperlinks.Add
En concreto con el parámetro: ScreenTip, definido como: La información en pantalla para que aparezca cuando se sitúa el puntero del ratón sobre el hipervínculo.
Pero claro este método hay que programarlo para que sea funcional y efectivo. Veamos un ejemplo.
Tenemos las siguientes formas:
Para hacer el ejercicio más claro, vamos a darle nombre a cada forma: «Elipse», «Triángulo», «Rectángulo». El nombre se lo podéis cambiar en el cuadro de nombres, al lado de la barra de fórmulas, solo tenéis que seleccionar la imagen y cambiar el nombre y pulsar enter.
Una vez cambiados y para hacer el ejercicio visual, vamos a incluir en nuestra hoja una serie de parámetros a incluir en el PopUp en cada forma:
En la columna N están los nombres de las formas, que nos servirán como guías para mostrar el dato de la columna O en cada una de las formas.
Ahora copiamos y pegamos el código que he creado:
Sub Crear_PopUp()
'Declaramos variables
Dim miarray As Variant, forma As Variant
Dim nCampo As Object, sItem As Object
Dim nCol As String, dato As String
'Desactivamos actualización de pantalla
Application.ScreenUpdating = False
'Pasamos los nombres de las formas a un array
miarray = Array("Elipse", "Triángulo", "Rectángulo")
'Por cada forma eliminamos hipervínculo
For Each forma In miarray
ActiveSheet.Shapes(forma).Select
On Error Resume Next
Selection.ShapeRange.Item(1).Hyperlink.Delete
On Error GoTo 0
'Pasamos información a la variable dato
Set nCampo = Range("N:N")
Set sItem = nCampo.Find(forma)
nCol = sItem.Address
dato = Range(nCol).Offset(0, 1)
dato2 = Range(nCol).Offset(0, 2)
'Creamos nuevo hipervínculo y pasamos la información al ScreenTip
ActiveSheet.Hyperlinks.Add Anchor:=Selection.ShapeRange.Item(1), Address:="", ScreenTip:="" & dato & " " & dato2
Next
End Sub
El resultado es el siguiente:
Como podéis comprobar, se ha creado el hipervínculo (que lleva a la misma hoja en la que estamos) y con el texto indicado para la Elipse.
En la macro he habilitado también la columna P para introducir otro dato y que veáis cómo se agregan campos. El efecto conseguido es el que buscamos, cuando nos acercamos a la forma, se muestra el texto y cuando nos alejamos se oculta.
Esto, obviamente lo podéis programar de distintas formas, por ejemplo con un Select Case podéis tener los parámetros de la hoja en el propio código. También que la macro se ejecute cuando se abre el archivo o se activa una celda, etc. El objetivo de este post es mostrar que es posible hacerlo y de una forma sencilla y eficaz.
Y eso es todo, espero que os resulte de utilidad en vuestros cuadros de mando o presentaciones : )
Descarga el archivo de ejemplo pulsando en: MOSTRAR UN POPUP EN IMAGEN AL MOVER EL CURSOR POR ENCIMA
¿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