Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

¿Qué es el OptionButton en VBA y cómo se usa?

| 32 comentarios

¿Qué es el OptionButton en VBA y cómo se usa?

El OptionButton en VBA es un control ActiveX que nos permitirá seleccionar una sola alternativa dentro de un grupo de botones de opción. A diferencia de las casillas de verificación, los botones de opción dependen uno del otro, por esto solo puede estar seleccionado un solo botón de opción.

Insertar un OptionButton:

Para insertar un botón de opción hacemos clic en el comando Insertar de la ficha Programador y luego seleccionar el “Botón de opción (control ActiveX)”

Se deberá agregar dos o más botones de opción para permitir que el usuario haga una selección de cualquiera de ellos.

Propiedad Value del OptionButton:

Esta es la propiedad más importante de este control. Los valores que puede tener la propiedad Value son de tipo boolean (Verdadero - Falso) es decir True y False.

Ejemplo 1:

Insertando 3 veces la alternativa “Botón de opción (control ActiveX)” y luego modificando el valor de “Caption” (cambiándolo por el nombre deseado, para este caso Opción 1, Opción 2 y Opción 3) en cada una de ellas al ingresar a sus propiedades se obtendrá:

img1

 

En el código VBA podemos acceder a su propiedad Value y modificarla de la siguiente manera:

Private Sub OptionButton1_Click()
'Si está seleccionado el Option1 se ejecuta
If OptionButton1.Value = True Then MsgBox ("Has seleccionado la Opción 1")
End Sub

Private Sub OptionButton2_Click()
'Si está seleccionado el Option2 se ejecuta
If OptionButton2.Value = True Then MsgBox ("Has seleccionado la Opción 2")
End Sub

Private Sub OptionButton3_Click()
'Si está seleccionado el Option3 se ejecuta
If OptionButton3.Value = True Then MsgBox ("Has seleccionado la Opción 3")
End Sub

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

En este Ejemplo 1 al validar que el botón de opción está seleccionado, se mostrará un cuadro de diálogo al ejecutar la función MsgBox mostrando un mensaje con la Opción que se eligió.

Ejemplo 2:

Algo parecido al primer ejemplo pero utilizando más elementes de interfaz

En este Ejemplo usaremos un UserForm1 en el cual añadiremos 3 veces la opción “Botón de opción (control ActiveX)” y un “botón de comando” los cuales modificaremos el Caption para cada uno de ellos y obtendremos lo siguiente:

img2

(Para mayor visualización de  la imagen, hacer click en la misma)

 

Este UseForm será llamado por un botón (modificando el Caption “Elegir Opción”) utilizando el siguiente código

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Con el siguiente código en VBA del UseForm1:

 

Private Sub CommandButton1_Click()
'Si está seleccionado el Option1 se ejecuta
If OptionButton1.Value = True Then
MsgBox "Seleccionaste la alternativa 1"
End If

'Si está seleccionado el Option2 se ejecuta
If OptionButton2.Value = True Then
MsgBox "Seleccionaste la alternativa 2"
End If

'Si está seleccionado el Option3 se ejecuta
If OptionButton3.Value = True Then
MsgBox "Seleccionaste la alternativa 3"
End If

End Sub

Al probar el Ejemplo 2 se puede ver que al seleccionar un botón de opción, y luego presionar Aceptar, se evalúa mediante una condición If Then, el valor de  Opción 1, Opción 2 y Opción 3. El Optionbutton que se encuentre con el valor True en la propiedad Value , ejecutará la función MsgBox mostrando el mensaje correspondiente que será similar al del Ejemplo 1.

Nota: de acuerdo a la alternativa seleccionada, se puede realizar algún PROCEDIMIENTO o FUNCIÓN para realizar alguna operación.

Ejemplos: Qué es el OptionButton en VBA y cómo se usa

 

Elaborado por: Walther Eduardo Reque Olano

32 comentarios

  1. hola, como puedo desvincular los option, es decir tengo 3 preguntas. la pregunta 1 te gusta el cafe?? si no
    2 el carro es negro?? si no
    3 x=y?? si no

    lo que pasa esq ue si selecciono en la primera pregunta si, y en la seg8unda pregunta selecciono no el caption de la priemera respuesta se quita y si seleccion alguna respuesta de la ultima respuesta se quita la respuesta 2... como le hago para que se queden las 3 respuestas, se que se puede hacer con el control checkbox, pero no quiero usarlo para no darle al usuario la oportunidad de colocar dos respuestas por pregunta

    gracias

    • Hola!

      Tienes que poner los botones de opción de cada pregunta en un Frame o Marco independiente por cada pregunta

  2. Saludos.

    Y como hago para que se ejecute una macro cuando elija una de las opciones de los optionbutton?

  3. Como haría al momento se selección optionbutton me arroje cierta información como dirección

  4. Hola! he estado intentado que cuando voy al siguiente formulario, avise si no se ha marcado por lo menos 1 respuesta de la encuesta, es decir necesito que todas las preguntas sean contestadas o si no, que no avance.

    pero se me ha complicado, algun consejo?

  5. Como se pueden desactivar un OptionButton sin pulsar el siguiente?

  6. hola. En un mismo formulario ¿puedo tener diversos grupos de optionbuttons? por ejemplo, en un formulario de concentraciones químicas deseo que al cargar los valores del problema el usuario pueda seleccionar si el dato ingresado es en gramos o en mililitros y esa pregunta se hace 3 veces en el mismo formulario para soluto, para solvente y para solución ¿es posible? no quiero usar casillas de opción porque permitirían elegir g y ml a la vez para cada componente

    • Descubrí la propiedad Groupname, jeje gracias!

  7. hola! es increíble la forma en la que explicas y muchos de tus videos me han ayudado aprender, sin embargo tengo una duda, es posible que mediante una condicional, se pueda cambiar la selección de un grupo de optionbutton automáticamente (sin tener que hacer click sobre el)

    gracias de antemano!

Página de comentarios 2 de 2
1 2

Deja una respuesta

Los campos requeridos estan marcados con *.