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

Tipos de controles ActiveX y cómo usarlos

En Excel VBA, ActiveX Controls se utilizan para mejorar la interactividad y la automatización en las hojas de trabajo. Estos son algunos de los controles más utilizados y cómo usarlos.

1. Cuadro de texto

El Text Box permite a los usuarios introducir o mostrar texto en una UserForm de Excel o en una hoja de cálculo. Con VBA, podemos establecer el contenido del Text Box, ya sea completando los datos automáticamente o recibiendo entradas de los usuarios.

Cómo crear un cuadro de texto en Excel VBA

  1. Abra Excel y habilite la  pestaña Developer.
  2. Seleccione Developer > Insert > Text Box (ActiveX Controls).
  3. Haga clic y arrastre para crear un Text Box en la hoja de cálculo.
  4. Para agregar un código VBA, haga clic con el botón derecho en Text Box y luego seleccione View Code.

Ejemplo de código VBA para rellenar automáticamente cuadros de texto

El siguiente código rellenará automáticamente el Text Box con texto cuando se ejecute:

TextBox1.Text “Data imported successfully”

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

Artículos más recientes