CommandButton
Dicho control hace referencia al botón de comando el cual permite ejecutar alguna rutina, procedimiento o fórmula especificada en Visual Basic a través de un botón incluido en la hoja de Excel misma o a través de un UserForm.
Dicho control permite realizar 13 eventos:
- BeforeDragOver
- BeforeDropOrPaste
- Click
- DblClick
- Error
- GotFocus
- KeyDown
- KeyPress
- KeyUp
- LostFocus
- MouseDown
- MouseMove
- MouseUp
Primero es necesario crear un UserForm con el proceso que queramos realizar. Desde este UserForm es que se llamará a la función a la hoja de Excel donde el botón se encuentre. Para crear un botón en Excel es necesario ir a la pestaña Programador en la barra de herramientas, seleccionar el modo edición y colocar el botón desde ActiveX, luego darle doble clic y colocar la rutina:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Este es el primer ejemplo de una de los principales eventos a explicar: Click, dicho evento se activa al clicar el botón en cuestión, en el caso a tratar genera la ventana:
Otros de los principales eventos son: GotFocus, LostFocus, MouseDown, MouseMove y MouseUp. Los primeros dos eventos se activan a partir de la relación del evento con el foco, si recibe foco se activa GotFocus, mientras que si lo pierde se activa el evento LostFocus.
Private Sub CommandButton1_GotFocus()
UserForm1.Show
End Sub
Por otra parte los últimos tres están relacionados a la posición del cursos respecto del botón. Si el cursor está debajo del botón de comando este se activará en el 3° caso, si el cursor se mueve encima de dicho botón se activará el evento y finalmente si el cursor está encima del botón se activará el evento.
Elaborado por: José Raunelli
14/10/2017 a las 2:16 am
Muy buenos dias.
Yo tengo un problema a la hora de designar un boton, y es que a la hora de agregar el codigo al boton, me marca un error ya que no aparece la palabra ".show" Espero que me pueda ayudar.
Saludos.
24/12/2019 a las 12:12 pm
Primero agradezco su tiempo y su interés en ayudarnos a entender la programación en VBA EXCEL. Pero disculpame... te planteo mi problema:
Mi formulario entre otros tiene 10 commandbutton, numerados del -0 al -9 y lo único que quiero es capturar dicho dígito cuando de click en uno de tales botones... SIN HACERLE una subrutina a cada boton - sino tener UNA SOLA SUB que lo primero que haga sea identificar el numero del boton y con este hacer la tarea correspondiente a dicho boton ...
Espero no haberlo confundido..
Muchas gracias por su atención...