Código vba para aumentar y disminuir una imagen al pasar el mouse, ¿Como lo puedo hacer?

En esta misma pagina había la misma pregunta, pero el código que hay no me reduce la imagen, cuando paso el mouse por la foto si me la aumenta, pero yo quiero que cuando lo quite vuelva al tamaño en el que yo la puse.

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.EnableEvents = False
With Me.Image1
.Height = 150 * 1.1
.Width = 200 * 1.1
End With
Application.EnableEvents = True
End Sub

Este es el código para aumentarla, me falta para disminuirla.

2 Respuestas

Respuesta
2

Si cuando pasas el puntero del mouse sobre la imagen, éste aumenta según el código que creaste en el evento MouseMove de la imagen, pues haz lo mismo, pero en el evento MouseMove del Userform o cualquier otro control que esté inmediato a dicha imagen, pero esta vez reduciendo el Height y el Width. Salu-dos

Gracias por tu tiempo, mira el código que hay abajo es con useform y no funciona

Si el control lo tienes en una hoja directamente lo que podrías hacer es crear un control label o imagen sobre la hoja, tendría que ser un poco más grande que tu imagen original, seleccionas el label y te diriges a la pestaña FORMATO, en organizar le das enviar al fondo, luego en tu imagen haces lo mismo solo que esta vez lo traes hacia el frente, luego posicionas tu imagen sobre el control ajustándolo en medio del label y en los códigos de estos controles agregas los códigos que te brindó James Bond, cambiando userform por Label1.

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.EnableEvents = False
With Me.Image1
.Height = 150 * 1.1
.Width = 200 * 1.1
End With
Application.EnableEvents = True
End Sub
Private Sub Label1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.EnableEvents = False
With Me.Image1
.Height = 150 * 0.5
.Width = 200 * 0.5
.PictureSizeMode = fmPictureSizeModeStretch
End With
Application.EnableEvents = True
End Sub

Solo hay un detalle que si pasas muy rápido el puntero del mouse, no se verán los cambios en las imagenes, tiene que ser moderado para que surtan tales efectos. Salu-dos.

Hola, si funciona así, pero lo malo es lo que tu dices, tienes que hacerlo muy lento

Si tienes razón, pero podrían haber otras alternativas.

Alguien sabe otra manera de hacerlo? De todas formas muchas gracias de verdad

Se me acaba de ocurrir una idea algo descabellada, escríbeme a mi correo para pasarte un archivo, [email protected]

te acabo de escribir

Karlos revisa tu correo

Respuesta
2

Usa esta macro, solo cambia los valores de disminución a tu gusto

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.EnableEvents = False
With Me.Image1
.Height = 150 * 1.1
.Width = 200 * 1.1
.PictureSizeMode = fmPictureSizeModeStretch
End With
Application.EnableEvents = True
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Application.EnableEvents = False
With Me.Image1
.Height = 150 * 0.5
.Width = 200 * 0.5
.PictureSizeMode = fmPictureSizeModeStretch
End With
Application.EnableEvents = True
End Sub

Hola, primero gracias por tu tiempo, pero no me funciona, la imagen se amplia pero cuando quito el mosue no se reduce, la imagen la inserto con activex. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas