Al pulsar un botón simular el efecto de la pulsación del botón

Cuando insertamos un botón en una hoja de Excel (no formulario), cuando lo pulsamos tiene ese efecto de movimiento.

Como puedo poner un botón con imagen que al pulsarlo tenga ese efecto de movimiento, por ejemplo, con estas dos imágenes.

1 Respuesta

Respuesta
5

Podría lograrse el "efecto" de la siguiente manera:

- Cambia el nombre de los botones a "boton1" y "boton2"

- Asigna la macro "Activar" al "boton1"

- Asigna la macro "DesActivar" al "boton2"

- Pon un botón encima del otro

Listo, cada que presiones un botón, el otro se oculta, haciendo el "efecto" de movimiento.

Sub Activar()
  ActiveSheet.DrawingObjects("boton2").Visible = True
  ActiveSheet.DrawingObjects("boton1").Visible = False
End Sub
Sub DesActivar()
  ActiveSheet.DrawingObjects("boton2").Visible = False
  ActiveSheet.DrawingObjects("boton1").Visible = True
End Sub
Sub mostrar()
  ActiveSheet.DrawingObjects("boton1").Visible = True
  ActiveSheet.DrawingObjects("boton2").Visible = True
End Sub

Agregué una tercera macro "mostrar" por si quieres mostrar los 2 botones.

Hola Dante, no termino poner el botón para que funcione, no se si es porque no lo estoy haciendo bien, pero el botón aparece con el borde exterior, hay alguna forma de quitarlo, porque si se quita ese borde estaría resulto el problema.

De la forma que dices, las imágenes se quedan dentro del archivo de excel, lo que hace que el peso suba, y lleva unos cuantos botones, y si hay que mover los botones de sitio hay que volver a colocar los botones uno encima del otro.

Te he subido a google drive un archivo con el ejemplo que me dices y otro código con el que estoy probando que creo que éste al poner una imagen en lugar de un botón parece que es mejor, y se evita estar colocando los botones uno encima del otros, pero no termino de darle el efecto porque se queda aplastado y cuando termina la macro vuelve a su posición normal, igual tampoco lo estoy haciendo bien, y otra cosa que veo es que la primera imagen no sale con la calidad que debe de tener, la segunda imagen si, no se porque se ve como difuminada.

Te he subido el ejemplo en un archivo comprimido porque lleva también las imágenes.

https://drive.google.com/file/d/1EG6KHgchtT4Vb9In_wSsAC6Lv7Ih_H2H/view?usp=sharing 

Si no quieres bajar el comprimido porque no te fías por temas de virus, te he subido también el archivo de excel, y colocar las imágenes que están en el primer post

https://drive.google.com/file/d/1PzvZPzUGg1yvhIyIn2vqEicfQhBYcha3/view?usp=sharing 

A ver que te parece el otro código, si se puede mejorar para que funcione bien.

Prueba mi archivo

https://drive.google.com/open?id=14wJ-yKrWBvDBhjZuSmVqtuZ-JDGjtZKg 

Hola Dante, gracias, he visto el archivo y el código es el mismo que has puesto arriba, no ha cambiado nada, quiero decir que al pulsarlo se queda se queda pulsado, no se levanta.

Lo que veo es que botón que has puesto es un botón de formulario, quiero decir que no es un control ActiveX, y no veo que tengo fondo el botón, ¿qué es una imagen PNG? Porque a mi no me deja ponerla.

He intentado separar las imágenes, para crear un nuevo botón con una macro diferente, pero hay una oculta, no sé porque si no se está utilizando el código.

Mira este código que no funciona cuando le asigno otra macro, no se porque ya que primero llamo a la macro “Activar”

https://drive.google.com/file/d/1iJzrIIyntqLIcHxsHR9TKVEhAzPtiM1P/view?usp=sharing

No estoy entendiendo lo que tú tienes.

Pediste esto:

"Como puedo poner un botón con imagen que al pulsarlo tenga ese efecto de movimiento"

La macro que te envié funciona para mi. Presionas el botón y hace el "efecto" de estar activo, presionas nuevamente el botón y hace el "efecto" de no estar activo.

¿Eso no sucede en el archivo que te envié?

¿Qué versión de excel tienes?

¿Vas a trabajar con botones de control active X o con botones de imagen?

Esto es lo que hace la macro:

https://youtu.be/Nm8G16ABxBU 

Si Dante así es como me esta funcionando, pero creo que se queda en la mitad del recorrido que tiene que hacer un pulsado, su funcionamiento no es pulsar y soltar, ahora se queda pulsado, osea imagen 1 - Imagen 2 - imagen 1, ahora se queda en imagen 2

Se me olvido comentarte, que si puedes utilízalo con el ejemplo que puse en el archivo que te envié, por ejemplo que su pulse el botón y muestre un mensaje.

Creo entender lo que necesitas.

Quieres el efecto de hacer click en el botón y cuando sueltas el click que el botón regrese a su estado.

Me parece que eso es una propiedad del botón, como bien mencionaste, algo como lo que tiene un commandbutton de control activeX.

Podrías realizar algo similar:

- Inserta un commandbutton de control activeX

- En sus propiedades del commandbutton, en Picture, inserta una imagen, previamente guarda una imagen del botón que necesitas.

- Asigna el siguiente código al commandbutton:

Private Sub CommandButton2_Click()
  MsgBox "Hola"
End Sub

Regresando a la idea de las imágenes, entonces podría ser así:

- Crea los 2 botones: boton1 y boton2

- Encima el boton1 arriba del boton2

- Ejecuta el siguiente código para agrupar los 2 botones:

Sub agrupar()
  ActiveSheet.DrawingObjects(Array("boton1", "boton2")).Select
  Selection.ShapeRange.Group
End Sub

- Asigna la macro "Activar" al botón "agrupado":

Sub Activar()
  ActiveSheet.DrawingObjects("boton2").Visible = True
  ActiveSheet.DrawingObjects("boton1").Visible = False
  DoEvents
  MsgBox "hola"
  ActiveSheet.DrawingObjects("boton2").Visible = False
  ActiveSheet.DrawingObjects("boton1").Visible = True
  DoEvents
End Sub

El efecto es el siguiente en los 2 ejemplos:

https://youtu.be/S-Xe27qn0r8 

Muchas Gracias Dante, voy a empezar a poner los botones.

Con gusto, g r a c i a s por comentar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas