ComboBox de VBA

ComboBox de Excel VBA

ComboBox es la función de formulario de usuario en VBA , son diferentes de los cuadros de texto ya que los cuadros de texto se usan para contener solo texto y permitimos al usuario ingresar cualquier tipo de datos, pero al usar cuadros combinados limitamos al usuario para el tipo de respuesta que deseamos por lo tanto, los datos están ordenados, es similar a la validación de datos de lista en Excel.

ComboBox se puede comparar con una lista desplegable en Excel, en las hojas de trabajo usamos la validación de datos para proporcionar un menú desplegable, pero en VBA hay una función de formulario de usuario donde se usa para proporcionar un menú desplegable en cualquier formulario de usuario, pero si queremos usar un combo box en Excel también podemos acceder a él desde la sección de desarrolladores desde allí podemos crear combo boxes para celdas individuales o múltiples.

El cuadro combinado es muy similar a la lista desplegable que tenemos en una hoja de cálculo de Excel, con el cuadro combinado podemos almacenar valores predeterminados, de modo que los usuarios hagan la selección de la lista disponible en el cuadro combinado. El cuadro combinado se usa generalmente junto con los formularios de usuario como parte de obtener la entrada de los usuarios.

Los formularios de usuario son útiles, pero tener otras herramientas en el formulario de usuario es lo que hace que el formulario de usuario sea tan especial. Una de las herramientas que usamos a menudo como herramienta para el formulario de usuario es “ComboBox”.

Las 2 mejores formas de crear un cuadro combinado de VBA

Puede descargar esta plantilla de Excel de VBA Combo Box aquí - Plantilla de Excel de VBA Combo Box

# 1 - Uso de codificación directa

Primero, veremos cómo usar Combo Box con la hoja de trabajo. Abra cualquiera de las hojas de trabajo en el libro de Excel, vaya a la pestaña Desarrollador y debajo de esta pestaña tenemos una herramienta llamada “Insertar”. Haga clic en esto y debajo de esto tenemos dos opciones Controles Active X y Controles de formulario en Excel.

En "Controles Active X", elija "Cuadro combinado".

Ahora puede dibujar este objeto en cualquiera de las hojas de trabajo.

Haga clic derecho en el cuadro combinado y elija la opción "Propiedades".

Cuando elija propiedades, se abrirá una gran lista de propiedades de un cuadro combinado.

Para este cuadro combinado, le daremos una lista de nombres de departamento, así que cambie la propiedad del nombre del cuadro combinado a  “DeptComboBox” .

Ahora, este cuadro combinado se denominará "DeptComboBox" . Necesitamos dar nombres de departamentos predeterminados, así que aquí tengo una lista de nombres de departamentos.

Ahora tenemos que agregar estos valores a la lista del cuadro combinado, podemos hacerlo de dos maneras, mediante la codificación o mediante el administrador de nombres.

Haga doble clic en el Combobox y lo llevará al procedimiento de macro de VBA.

Pero necesitamos ver los nombres de estos departamentos cuando se abre el libro de trabajo, así que haga doble clic en "Este libro de trabajo".

En la lista desplegable, elija "Libro de trabajo".

De las opciones, elija "Abrir".

Ahora creará un espacio en blanco como el de abajo.

Dentro de esta macro, ingrese el siguiente código.

Código:

 Private Sub Workbook_Open () With Worksheets ("Sheet1"). DeptComboBox .AddItem "Finance" .AddItem "Marketing" .AddItem "Merchandising" .AddItem "Operations" .AddItem "Audit" .AddItem "Client Servicing" End With End Sub 

Bien, ahora guarde y cierre el libro de trabajo, cuando vuelva a abrir el libro de trabajo, podríamos ver los nombres de los departamentos en él.

# 2 - Usando UserForm

Otra forma de agregar valores al ComboBox es mediante el formulario de usuario. Primero, asigne un nombre a las celdas como "Departamento".

Vaya al Editor de Visual Basic e inserte el formulario de usuario desde la opción INSERTAR.

Ahora se crea el nuevo formulario de usuario.

Junto al formulario de usuario, podemos ver "Caja de herramientas" de esta caja de herramientas podemos insertar "Caja combinada".

Ahora el cuadro combinado está incrustado en el formulario de usuario, en este método para abrir la opción de propiedades, seleccione el cuadro combinado y presione la tecla F4 para abrir la ventana de propiedades.

Desplácese hacia abajo en la pestaña de propiedades y elija "Origen de fila".

Para esta “Fuente de fila” ingrese el nombre que le habíamos dado a las celdas de nombre de departamento.

Ahora, este cuadro combinado contiene la referencia del nombre "Departamento" .

Ahora ejecute el formulario de usuario utilizando el botón Ejecutar.

Ahora podemos ver una lista de nombres de departamentos en el cuadro combinado del formulario de usuario.

Prácticamente formulario de usuario asociado con un cuadro combinado, cuadro de texto y muchas otras herramientas. Crearemos un formulario de usuario de entrada de datos simple con un cuadro de texto y un cuadro combinado.

Cree un formulario de usuario como el siguiente.

Cree dos botones de comando.

Haga doble clic en el botón "ENVIAR" y se abrirá debajo de la macro.

Dentro de esta macro, agregue el código siguiente.

Código:

 Private Sub CommandButton1_Click() Dim LR As Long LR = Cells(Rows.Count, 1).End(xlUp).Row + 1 Cells(LR, 1).Value = TextBox1.Value Cells(LR, 2).Value = ComboBox1.Value End Sub 

Now double click on the “CANCEL” button and add the below code.

Now in the worksheet create a template like the below.

Now run the user form and it will open up like this.

Enter the employee name and pick the department name from the combo list.

Click on the SUBMIT button and see the magic.

We got the values entered in the table format we have created.

Things to Remember

  • COMBO BOX has its own properties as well.
  • Adding values to list comes in two ways one is a coding way and another one is range name reference.
  • COMBO BOX is usually part of the user form.