Cómo crear formularios interactivos en Excel VBA con controles ActiveX

2. Cuadro de lista

List Box es un elemento de control que sirve para mostrar una lista de selecciones, lo que permite al usuario seleccionar uno o más elementos. Esto es especialmente útil en formularios de entrada de datos o para la navegación entre páginas en aplicaciones que usan Excel VBA.

Cómo agregar datos a un cuadro de lista en Excel VBA

  1. Abra la  pestaña Developer en Excel.
  2. Seleccione Insert > List Box (ActiveX Controls).
  3. Haga clic y arrastre para colocar el List Box en la hoja de trabajo.
  4. Haga clic derecho en List Box > Properties.

Ejemplo de código VBA para agregar elementos al cuadro de lista

Utilice el siguiente código VBA para agregar varios nombres de ciudades al List Box:

With Sheet1.ListBox1
  .AddItem  “Jakarta”
  .AddItem “Surabaya”
  .AddItem “Bandung”
End With

Este código se puede colocar en Workbook_Open evento para que los datos se carguen automáticamente cuando se abra el archivo.

Conexión de cuadros de lista con celdas en Excel

Para mostrar los elementos seleccionados del List Box a una celda específica, realice los siguientes pasos:

  1. Haga clic con el botón derecho en List Box y luego seleccione Properties.
  2. Busque la propiedad LinkedCell y, a continuación, escriba la dirección de la celda (ejemplo: D3).
  3. Ahora, cada vez que el usuario seleccione un elemento en el List Box, el valor aparecerá en la celda D3.

Si desea recuperar el valor seleccionado mediante VBA, utilice el siguiente código:

Range(“D3”).Value =  ListBox1.Value

3. Cuadro combinado

Combo Box es un control ActiveX en Excel VBA que sirve como una lista de opciones que se pueden desplegar. Los usuarios pueden seleccionar un solo elemento de la lista o escribir su texto. A menudo se utiliza un Combo Box en los formularios de entrada para minimizar los errores al introducir datos, ya que los usuarios sólo pueden elegir entre las opciones que se han proporcionado.

Cómo agregar datos dinámicos a un cuadro combinado

Para agregar un Combo Box a una hoja de cálculo, siga estos pasos:

  1. Abra Excel y asegúrese de que la pestaña Developer esté activada.
  2. Haga clic en Developer > Insert > Combo Box (ActiveX Controls).
  3. Haga clic y arrastre para dibujar Combo Box en la hoja de trabajo.
  4. Haga clic con el botón derecho en Combo Box y luego seleccione Properties.

Ejemplo de código VBA para agregar elementos a un cuadro combinado de forma dinámica

Utilice el siguiente código para agregar elementos al Combo Box automáticamente cuando se abra el libro o se haga clic en el botón:

ComboBox.Add  Item “Option 1”
ComboBox1.Add Item “Option 2”
ComboBox1.Add Item “Option 3”

Conexión de cuadros combinados con celdas en Excel

Para guardar el valor seleccionado en el Combo Box en una celda específica, realice los siguientes pasos:

  1. Haga clic con el botón derecho en Combo Box y luego seleccione Properties.
  2. Busque la propiedad LinkedCell y, a continuación, escriba la dirección de la celda (por ejemplo, D3).
  3. Ahora, cada vez que el usuario selecciona un elemento en el Combo Box, ese valor aparecerá en la celda D3.

Como alternativa, utilice el siguiente código VBA para guardar el valor de la opción en la celda:

Range(“D3”).Value  ComboBox1.Value

4. Casilla de verificación

Check Box es un control que permite al usuario seleccionar la opción Ya/Tidak o True/False. Esto es útil para entradas binarias como la confirmación de consentimiento, la selección de características o la activación/desactivación de una función en un formulario.

Usar la casilla de verificación para guardar valores verdaderos/falsos

Para agregar un Check Box en Excel VBA, siga estos pasos:

  1. Abra la  pestaña Developer en Excel.
  2. Haga clic en Insert > Check Box (ActiveX Controls).
  3. Haga clic y arrastre para colocar el Check Box en la hoja de trabajo.
  4. Haga clic derecho en Check   Box > Properties.

Ejemplo de código VBA para conectar una casilla de verificación con una celda

Para Check Box almacenar valores en celdas en función de su estado, use el siguiente código:

If CheckBox1.Value  = True Then
  Range(“D2”).Value  1
Else
  Range(“D2”).Value = 0
End If

Este código rellenará D2 celdas con 1 si el Check Box está marcado y 0 si no está marcado.

Para que esta función se ejecute automáticamente cuando el usuario haga clic en Check Box, use event Change dentro del VBA Editor:

Artículos más recientes