Mostrar imagen al posicionar el mouse sobre un objeto.

09/03/2008 - 20:54 por FeCel | Informe spam
Hola a todos,

Tengo un Userform con varios CommandButtons. Quisiera que cuando el cursor
del mouse está sobre el CommandButton1 (sin necesidad de clickearlo) se
despliegue en pantalla una imagen (o un archivo pdf, o una hoja de la
planilla), y que cuando el cursor se desplace a otro sitio, desaparezca la
imagen y nuevamente quede visible el Userform.

Prové con esta secuencia, insertando la imagen en el formulario UserForm2.
Sin embargo, no me sirve porque requiere cerrar el UserForm2 para volver al
UserForm1. Es decir, si muevo el cursor, se mantiene en pantalla el UserForm2
hasta cerrarlo, y necesito que se cierre solo.

Private Sub CommandButton1_MouseMove( ByVal Button As Integer, ByVal Shift
As Integer, ByVal X As Single, ByVal Y As Single)
With CommandButton1
If (X >= 5 And Y >= 5) And (X <= .Width - 5 And Y <= .Height - 5) _
Then Userform2.Show Else UserForm1.Repaint
End With
End Sub


Muchas gracias de antemano por cualquier ayuda.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/03/2008 - 22:51 | Informe spam
hola, !

1) tu objetivo principal, ya lo conseguiste:
que se muestre OTRO objeto (Userform2) al "pasear" el mouse sobre tu commandbutton1 (Userform1)

2) para tu segundo objetivo:
que Userform2 se oculte por acciones de "quitar" el mouse de encima de tu commadbutton1 (en el Userform1)

a) los eventos del Userform1 NO estan activos debido a que ha pasado a segundo plano al mostrar el Userform2
b) a menos que le regreses "el foco" al Userform1... tienes que usar los eventos del Userform2 (o cerrarlo en manual)
(y tendrias que estar atento a si el Userform2 esta visible al accionar los eventos de "ocultacion" desde el Userform1) <= OJO

(creo que) te seldria mas "barato" usar la imagen dentro del mismo Userform1...
-> p.e. ampliando/reduciendo el campo visual del Userform1 cuando el mouse se "pasea" dentro/fuera del commandbutton1 -???-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
Tengo un Userform con varios CommandButtons.
Quisiera que cuando el cursor del mouse esta sobre el CommandButton1 (sin necesidad de clickearlo)
se despliegue en pantalla una imagen (o un archivo pdf, o una hoja de la planilla)
y que cuando el cursor se desplace a otro sitio, desaparezca la imagen y nuevamente quede visible el Userform.
Prove con esta secuencia, insertando la imagen en el formulario UserForm2.
Sin embargo, no me sirve porque requiere cerrar el UserForm2 para volver al UserForm1.
Es decir, si muevo el cursor, se mantiene en pantalla el UserForm2 hasta cerrarlo, y necesito que se cierre solo.

Private Sub CommandButton1_MouseMove( ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With CommandButton1
If (X >= 5 And Y >= 5) And (X <= .Width - 5 And Y <= .Height - 5) _
Then Userform2.Show Else UserForm1.Repaint
End With
End Sub
Respuesta Responder a este mensaje
#2 FeCel
10/03/2008 - 00:24 | Informe spam
Muchas gracias Héctor,

¿Y de qué forma puedo ampliar o reducir el campo visual?. Supongamos que el
CommandButton1 tiene una imagen como frente. ¿Puedo ampliarla al 80% del
tamaño de la pantalla?.

En todo caso, la idea mía era replicar algo similar a lo que ocurre cuando
el cursor del mouse se ubica sobre una línea de un pop-up y aparece un nuevo
pop-up, que desaparece al continuar moviendo el mouse. Algo enredado de
explicar en palabras, pero es muy frecuente en el ambiente windows.

Muchas gracias
FeCel

"Héctor Miguel" wrote:

hola, !

1) tu objetivo principal, ya lo conseguiste:
que se muestre OTRO objeto (Userform2) al "pasear" el mouse sobre tu commandbutton1 (Userform1)

2) para tu segundo objetivo:
que Userform2 se oculte por acciones de "quitar" el mouse de encima de tu commadbutton1 (en el Userform1)

a) los eventos del Userform1 NO estan activos debido a que ha pasado a segundo plano al mostrar el Userform2
b) a menos que le regreses "el foco" al Userform1... tienes que usar los eventos del Userform2 (o cerrarlo en manual)
(y tendrias que estar atento a si el Userform2 esta visible al accionar los eventos de "ocultacion" desde el Userform1) <= OJO

(creo que) te seldria mas "barato" usar la imagen dentro del mismo Userform1...
-> p.e. ampliando/reduciendo el campo visual del Userform1 cuando el mouse se "pasea" dentro/fuera del commandbutton1 -???-

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ la consulta original __
> Tengo un Userform con varios CommandButtons.
> Quisiera que cuando el cursor del mouse esta sobre el CommandButton1 (sin necesidad de clickearlo)
> se despliegue en pantalla una imagen (o un archivo pdf, o una hoja de la planilla)
> y que cuando el cursor se desplace a otro sitio, desaparezca la imagen y nuevamente quede visible el Userform.
> Prove con esta secuencia, insertando la imagen en el formulario UserForm2.
> Sin embargo, no me sirve porque requiere cerrar el UserForm2 para volver al UserForm1.
> Es decir, si muevo el cursor, se mantiene en pantalla el UserForm2 hasta cerrarlo, y necesito que se cierre solo.
>
> Private Sub CommandButton1_MouseMove( ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
> With CommandButton1
> If (X >= 5 And Y >= 5) And (X <= .Width - 5 And Y <= .Height - 5) _
> Then Userform2.Show Else UserForm1.Repaint
> End With
> End Sub



Respuesta Responder a este mensaje
#3 Héctor Miguel
10/03/2008 - 00:59 | Informe spam
hola, !

Y de que forma puedo ampliar o reducir el campo visual?.
Supongamos que el CommandButton1 tiene una imagen como frente.
Puedo ampliarla al 80% del tamano de la pantalla?.

... la idea mia era replicar algo similar a lo que ocurre cuando el cursor del mouse se ubica sobre una linea de un pop-up
y aparece un nuevo pop-up, que desaparece al continuar moviendo el mouse.
Algo enredado de explicar en palabras, pero es muy frecuente en el ambiente windows...



no estoy muy seguro de acabar de entender el objetivo final (o el fondo) de este asunto -???-
prueba con un formulario donde solo pongas un commandbutton1 (parte superior izquierda del formulario)
y copia/pega las sigientes lineas en su modulo de codigo:
(ya despues decides como administrar/controlar/... otras propiedades y objetos) ;)

Private Sub UserForm_Initialize()
With Me
.StartUpPosition = 0
.Left = 5
.Top = 5
.Height = 75
.Width = 115
End With
End Sub
Private Sub CommandButton1_MouseMove( _
ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
With CommandButton1
If (X >= 5 And Y >= 5) And (X <= .Width - 5 And Y <= .Height - 5) Then
Me.Height = 180
Me.Width = 240
Else
Me.Height = 75
Me.Width = 115
End If
End With
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ las consultas anteriores __
1) tu objetivo principal, ya lo conseguiste:
que se muestre OTRO objeto (Userform2) al "pasear" el mouse sobre tu commandbutton1 (Userform1)

2) para tu segundo objetivo:
que Userform2 se oculte por acciones de "quitar" el mouse de encima de tu commadbutton1 (en el Userform1)

a) los eventos del Userform1 NO estan activos debido a que ha pasado a segundo plano al mostrar el Userform2
b) a menos que le regreses "el foco" al Userform1... tienes que usar los eventos del Userform2 (o cerrarlo en manual)
(y tendrias que estar atento a si el Userform2 esta visible al accionar los eventos de "ocultacion" desde el Userform1) <= OJO

(creo que) te seldria mas "barato" usar la imagen dentro del mismo Userform1...
-> p.e. ampliando/reduciendo el campo visual del Userform1 cuando el mouse se "pasea" dentro/fuera del commandbutton1 -???-

__ la consulta original __
Tengo un Userform con varios CommandButtons.
Quisiera que cuando el cursor del mouse esta sobre el CommandButton1 (sin necesidad de clickearlo)
se despliegue en pantalla una imagen (o un archivo pdf, o una hoja de la planilla)
y que cuando el cursor se desplace a otro sitio, desaparezca la imagen y nuevamente quede visible el Userform.
Prove con esta secuencia, insertando la imagen en el formulario UserForm2.
Sin embargo, no me sirve porque requiere cerrar el UserForm2 para volver al UserForm1.
Es decir, si muevo el cursor, se mantiene en pantalla el UserForm2 hasta cerrarlo, y necesito que se cierre solo.

Private Sub CommandButton1_MouseMove( ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
With CommandButton1
If (X >= 5 And Y >= 5) And (X <= .Width - 5 And Y <= .Height - 5) _
Then Userform2.Show Else UserForm1.Repaint
End With
End Sub
Respuesta Responder a este mensaje
#4 FeCel
10/03/2008 - 19:01 | Informe spam
Muchas gracias por el código. Si bien permite ampliar o reducir el tamaño del
UserForm, no es aplicable a lo que pretendo hacer.
En mi UserForm tengo un CommandButton llamado "Imprimir", y deseo que cuando
hagas click sobre él, imprima. Pero cuando sólo pases el cursor sobre él, se
despliegue una imagen (o puede ser también una hoja del Workbook) con ciertas
recomendaciones para imprimir (son dibujos, no texto).
Lo ideal es que lo que se muestre desaparezca al sacar el cursor del
CommandButton "Imprimir", y no requiera "cerrar" la imagen.
Saludos y gracias nuevamente.


"Héctor Miguel" wrote:

hola, !

> Y de que forma puedo ampliar o reducir el campo visual?.
> Supongamos que el CommandButton1 tiene una imagen como frente.
> Puedo ampliarla al 80% del tamano de la pantalla?.
>
> ... la idea mia era replicar algo similar a lo que ocurre cuando el cursor del mouse se ubica sobre una linea de un pop-up
> y aparece un nuevo pop-up, que desaparece al continuar moviendo el mouse.
> Algo enredado de explicar en palabras, pero es muy frecuente en el ambiente windows...

no estoy muy seguro de acabar de entender el objetivo final (o el fondo) de este asunto -???-
prueba con un formulario donde solo pongas un commandbutton1 (parte superior izquierda del formulario)
y copia/pega las sigientes lineas en su modulo de codigo:
(ya despues decides como administrar/controlar/... otras propiedades y objetos) ;)

Private Sub UserForm_Initialize()
With Me
.StartUpPosition = 0
.Left = 5
.Top = 5
.Height = 75
.Width = 115
End With
End Sub
Private Sub CommandButton1_MouseMove( _
ByVal Button As Integer, ByVal Shift As Integer, _
ByVal X As Single, ByVal Y As Single)
With CommandButton1
If (X >= 5 And Y >= 5) And (X <= .Width - 5 And Y <= .Height - 5) Then
Me.Height = 180
Me.Width = 240
Else
Me.Height = 75
Me.Width = 115
End If
End With
End Sub

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ las consultas anteriores __
>> 1) tu objetivo principal, ya lo conseguiste:
>> que se muestre OTRO objeto (Userform2) al "pasear" el mouse sobre tu commandbutton1 (Userform1)
>>
>> 2) para tu segundo objetivo:
>> que Userform2 se oculte por acciones de "quitar" el mouse de encima de tu commadbutton1 (en el Userform1)
>>
>> a) los eventos del Userform1 NO estan activos debido a que ha pasado a segundo plano al mostrar el Userform2
>> b) a menos que le regreses "el foco" al Userform1... tienes que usar los eventos del Userform2 (o cerrarlo en manual)
>> (y tendrias que estar atento a si el Userform2 esta visible al accionar los eventos de "ocultacion" desde el Userform1) <= OJO
>>
>> (creo que) te seldria mas "barato" usar la imagen dentro del mismo Userform1...
>> -> p.e. ampliando/reduciendo el campo visual del Userform1 cuando el mouse se "pasea" dentro/fuera del commandbutton1 -???-

>> __ la consulta original __
>>> Tengo un Userform con varios CommandButtons.
>>> Quisiera que cuando el cursor del mouse esta sobre el CommandButton1 (sin necesidad de clickearlo)
>>> se despliegue en pantalla una imagen (o un archivo pdf, o una hoja de la planilla)
>>> y que cuando el cursor se desplace a otro sitio, desaparezca la imagen y nuevamente quede visible el Userform.
>>> Prove con esta secuencia, insertando la imagen en el formulario UserForm2.
>>> Sin embargo, no me sirve porque requiere cerrar el UserForm2 para volver al UserForm1.
>>> Es decir, si muevo el cursor, se mantiene en pantalla el UserForm2 hasta cerrarlo, y necesito que se cierre solo.
>>>
>>> Private Sub CommandButton1_MouseMove( ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
>>> With CommandButton1
>>> If (X >= 5 And Y >= 5) And (X <= .Width - 5 And Y <= .Height - 5) _
>>> Then Userform2.Show Else UserForm1.Repaint
>>> End With
>>> End Sub



Respuesta Responder a este mensaje
#5 Héctor Miguel
10/03/2008 - 21:05 | Informe spam
hola, !

... el codigo. Si bien permite ampliar o reducir el tamano del UserForm, no es aplicable a lo que pretendo hacer.
En mi UserForm tengo un CommandButton llamado "Imprimir", y deseo que cuando hagas click sobre el, imprima.
Pero cuando solo pases el cursor sobre el, se despliegue una imagen (o puede ser tambien una hoja del Workbook)
con ciertas recomendaciones para imprimir (son dibujos, no texto).
Lo ideal es que lo que se muestre desaparezca al sacar el cursor del CommandButton "Imprimir", y no requiera "cerrar" la imagen...



por que no pruebas poniendo tu imagen dentro del area "expandible/ocultable" del userform ?
de lo contrario, al mostrar OTRO objeto, el Userform1 ya no estara "en control de sus eventos" :-((

saludos,
hector.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida