VBA ComboBox - ¿Cómo crear y usar ComboBox en VBA?

Tabla de contenido

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 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 cuadro combinado en Excel, podemos También accedemos a él desde la sección de desarrolladores desde allí podemos crear cuadros combinados 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 para que los usuarios realicen 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 formas principales de crear un ComboBox VBA

# 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 enorme lista de propiedades de un cuadro combinado.

Para este cuadro combinado, le daremos una lista de nombres de departamento, así que cambie la propiedad de 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 necesitamos agregar estos valores a la lista del cuadro combinado. Podemos hacer esto de dos formas, mediante codificación o mediante el administrador de nombres.

Haga doble clic en el cuadro combinado 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 siguiente.

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

Ok, ahora guarda y cierra el libro. 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 "Cuadro combinado".

Now the combo box is embedded in the user form. In this method, to open the properties option, select the combo box and press the F4 key to open the properties window.

Scroll down the properties tab and choose “Row Source.”

For this “Row Source,” enter the name that we had given to department name cells.

Now this combo box holds the reference of the name “Department.”

Now run the user form by using the run button.

Now we can see a list of department names in the combo box on the user form.

Practically user form is associated with a combo box, text box, and many other tools. We will create a simple data entry user form with a text box & combo box.

Create a user form like the below.

Create two Command Buttons.

Double click on the “SUBMIT” button it will open up below macro.

Inside this macro, add the below code.

Code:

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

Ahora haga doble clic en el botón "CANCELAR" y agregue el siguiente código.

Ahora en la hoja de trabajo, cree una plantilla como la siguiente.

Ahora ejecute el formulario de usuario y se abrirá así.

Ingrese el nombre del empleado y elija el nombre del departamento de la lista combinada.

Haga clic en el botón ENVIAR y vea la magia.

Obtuvimos los valores ingresados ​​en el formato de tabla que hemos creado.

Cosas para recordar

  • COMBO BOX también tiene sus propias propiedades.
  • Agregar valores a la lista viene de dos maneras. Una es una forma de codificación y otra es una referencia de nombre de rango.
  • COMBO BOX suele formar parte del formulario de usuario.

Articulos interesantes...