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
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.
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?
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:
- Compartir respuesta