Botón de opción en VBA

Un botón de opción es un control ActiveX que nos permitirá seleccionar una sola opción 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.

El botón de opción en Excel

Para insertar un botón de opción hacemos clic en el comando Insertar de la ficha Programador.

El botón de opción en Excel

Un solo botón de opción no hace mucho sentido, así que siempre agregamos dos o más botones de opción para permitir que usuario haga una selección de cualquiera de ellos.

Insertar botones de opción

Una vez que se ha agregado un segundo botón de opción podrás notar que al seleccionar uno de ellos se desmarcarán todos los demás.

La propiedad Caption

De manera predeterminada Excel colocará el botón de opción con un nombre como OptionButton1. Para cambiar este texto debemos editar la propiedad Caption del botón de opción.

La propiedad Caption del botón de opción

El botón de opción en VBA

Para saber si un botón de opción ha sido seleccionado podemos acceder a su propiedad Value de la siguiente manera:

Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then MsgBox ("Has seleccionado la opción Hombre")
End Sub

La propiedad Value es la que nos indica si el control está seleccionado, en cuyo caso, la propiedad será igual a True. Para este ejemplo, al validar que el botón de opción está seleccionado, se mostrará un cuadro de diálogo con un mensaje sobre la opción seleccionada.

17 pensamientos en “Botón de opción en VBA

  1. Ariel

    Necesito utilizar un boton de opcion y que al hacer click sobre el ejecute una formula, por ejemplo: multiplicar la celda A3*B3. Como puede realizar esto??

    1. Moisés Ortíz Autor

      Hola Ariel, dentro del evento Click del botón debes utilizar el siguiente código:
      Range(“C3″).Value = Range(“A3″).Value * Range(“B3″).Value

  2. santiago monzón

    Hola necesito poder seleccionar mas de un botón de opción a la vez en el mismo formulario, es posible?

    1. Moisés Ortíz Autor

      Hola Santigo, claro que es posible tener múltiples botones de opción en el mismo formulario, solo debes utilizar la propiedad GroupName para marcar la diferencia entre un grupo de controles y otro.

  3. sandy

    hola!
    en mi excel no tengo la ficha de programador? que puedo hacer
    saludos…
    gracias.

  4. RUBEN DARIO JIMENEZ

    DE GRAN AYUDA EL PROGRAMADOR DE EVENTOS, NO HABÍA TENIDO LA OPORTUNIDAD DE UTILIZARLA PERO ME HE DADO CUENTA QUE ES MUY ÚTIL. GRACIAS EXCEL

  5. David

    Hola que tal! muy buena pagina, el tutorial es exelente!
    solo tengo una pregunta respecto a este tema, como puedo desacivar un botón de activex una vez que ya es seleccionado, y como puedo crear un boton de comando que me desacive un rango de Botones! GRACIAS

    1. Moisés Ortíz Autor

      Hola David, debes utilizar la propiedad Enabled de los controles ActiveX. Por ejemplo, para desactivar un botón debes utilizar la siguiente instrucción:
      CommandButton1.Enabled = False

  6. Manuel

    Hola, necesito dentro de un mismo grupo de formulario seleccionar dos o mas botones de opcion al mismo tiempo ¿es eso posible?

    1. Moisés Ortíz Autor

      Hola Manuel, puedes agrupar los botones de opción a través de la propiedad GroupName. Cada grupo será independiente del otro.

    2. Manuel

      Moisés, me podrías ayudar por favor con esta duda, ejemplo: tengo la necesidad de que en las preguntas de examen se tengan 4 respuestas y el alumno pueda responder 2 o mas opciones, ¿como puedo hacer esto con los botones de opción de formulario?, tomando en cuenta de que el alumno puede cambiar su opinión en cualquier momento(marcar o desmarcar botones?
      gracias/saludos.

  7. Juan Pablo

    Hola Moisés me podrías ayudar con la siguiente duda: la cuestión es que tengo dos opciones “A y “B”, quiero que cuando seleccione “A” se oculte la columna 14, y cuando seleccione “B” se oculte la columna 13 y 17 y se muestre la columna 14.
    Saludos

    1. Moisés Ortíz Autor

      Hola Juan Pablo, puede ocultar una columna con la propiedad Hidden. Por ejemplo, para ocultar la columna 13 utiliza la siguiente instrucción:
      Cells(1, 13).EntireColumn.Hidden = True

  8. felipe

    Hola espectaculares tus articulos, necesito hacer que cuando aprete un boton de accion, este ingrese un valor por ejemplo 123 a la celda j10
    puedes ayudarme por favor?

    1. Moises Ortiz Autor

      Hola felipe, en el evento Click del control deberás insertar la siguiente línea de código:
      Range(“J10″).Value = 123