Un cuadro combinado en un formulario de usuario es como un menú desplegable, que se puede usar para elegir una opción entre las opciones disponibles. Es como el menú desplegable que creamos usando la validación de datos en hojas de trabajo.

En la mayoría de las formas digitales, debe haber visto al menos un cuadro combinado. Podría haber sido para seleccionar un estado de una lista de estados, un curso de una lista de cursos, un país de una lista de países, etc. En este artículo, aprenderemos cómo agregar un cuadro combinado en un formulario de usuario de VBA, cómo para inicializar el cuadro combinado con valores y cómo recuperar el valor del cuadro combinado.

Agregar un cuadro combinado a un formulario de usuario Para agregar un cuadro combinado a un formulario de usuario, primero debe tener un formulario de usuario.

¡Dah !. Entonces abre VBE usando CTRL + F11. Haga clic derecho en el libro de trabajo, vaya a insertar y haga clic en Userform. Tiene un formulario de usuario agregado. Puede leer más sobre formularios de usuario en VBA link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [aquí].

image

Ahora, desde la caja de herramientas, elija combobox. Es la cuarta opción en la fila superior. Si no puede ver la caja de herramientas. Vaya a Ver en el menú, haga clic en Caja de herramientas. Aparecerá la caja de herramientas.

image

He agregado una etiqueta de estados porque este cuadro combinado contendrá una lista de algunos estados y un botón de envío para enviar el formulario.

¿Cómo inicializar un cuadro combinado en el formulario de usuario? Esta es la parte en la que la mayoría de la gente comete errores. A veces, los alumnos escriben el código para cargar valores en el cuadro combinado y luego envían botones. Y cuando cargan el formulario de usuario, el cuadro combinado no muestra ningún valor. Para cargar el cuadro combinado, debe escribir el código antes de cargar el formulario de usuario. Esto se puede hacer en el módulo, co el botón donde carga el formulario. El código para cargar la lista del cuadro combinado debe ir antes del comando formname.show.

Cargando Combobox en UserForm llamando a la subrutina

Digamos que quiero codificar una matriz en el cuadro combinado de estado. Entonces escribiré una subrutina que cargará el formulario de usuario para completar la información. Consulte el siguiente código.

Sub load_userform()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

UserForm1.Show

End Sub

Defino una matriz «estados» que contiene algunos nombres de estados indios.

Ahora uso el nombre del formulario de usuario para acceder al cuadro combinado, ya que el cuadro combinado es parte del formulario de usuario.

El nombre de mi formulario de usuario es userform1. Y el nombre de combobox es combobox1. Estos son nombres predeterminados. Puede cambiarlos desde la ventana de propiedades.

A continuación, inicializo la propiedad de lista del cuadro combinado con estados.

Y luego muestro el userform1 usando el comando show.

Cuando ejecute el código anterior, el cuadro combinado tendrá todos los estados enumerados.

image

Inicializando Combobox usando el evento UserForm_Initialize ().

Otro método para cargar componentes de cuadro combinado en el formulario de usuario es utilizar el evento de formulario de usuario Initialize. Este evento se ejecuta antes de que se cargue el formulario de usuario.

Cualquier cosa que desee hacer antes de que se cargue el formulario de usuario, puede hacerlo aquí.

Una de esas cosas es cargar elementos de cuadro combinado. Así que haga doble clic en el formulario de usuario para abrir el área de codificación en el objeto de formulario de usuario. Ahora, desde el menú desplegable de la izquierda, seleccione formulario de usuario. Luego, en el menú desplegable de la derecha, seleccione inicializar.

image

Se insertará un subnombre vacío UserForm_Initialize (). Todo lo que esté escrito en este sub se ejecutará antes de que aparezca el formulario de usuario.

Entonces escribimos el código de inicialización para el cuadro combinado aquí.

Private Sub UserForm_Initialize()

states = Array("Delhi", "UP", "UK", "Gujrat", "Kashmir")

UserForm1.ComboBox1.List = states

End Sub

Tenga en cuenta que aquí no tenemos el comando userform1.show. Todavía está en ese módulo. Ese sub se utilizará para que nuestro formulario de usuario aparezca en la pantalla.

Sub load_userform()

UserForm1.Show

End Sub

Por lo tanto, los usuarios ejecutarán load_userform sub usando algún comando, botón o elemento asignado por macro. A medida que el compilador ejecuta el comando de código userform1.show, inmediatamente ejecuta el evento useforma_initialize (). Luego muestra el formulario de usuario a los usuarios.

Notas:

Si escribe el código para inicializar el cuadro combinado con valores en el botón de comando 1 clic, el cuadro combinado no mostrará nada.

Para inicializar el cuadro combinado con valores, cárguelo en cualquier evento que ocurra antes de que el usuario llegue al cuadro combinado para llenarlo.

Recuperando valor de ComboBox Entonces usamos formularios para obtener información. Y para usar esa información, necesitamos recuperarlos. Para obtener cualquier valor del cuadro combinado de formulario de usuario, usamos la propiedad combobox.value. Por lo general, recuperamos los valores de los elementos del formulario una vez que el usuario completa el formulario y lo envía mediante el botón enviar. Entonces podemos usar el evento commandbutton_click. Por lo tanto, inserte un botón de comando y escriba enviar en él, si aún no lo tiene. Ahora haga doble clic en él y estará dentro del evento commandButton_click.

Ahora cree una variable para almacenar el valor. Guárdelo en una hoja si lo desea. Finalmente salga del formulario usando el comando Unload Me. Como se muestra en el siguiente código.

Private Sub CommandButton1_Click()

State = ComboBox1.Value

ThisWorkbook.Worksheets("sheet1").Range("A1") = State

Unload Me

End Sub

Así que sí, chicos, así es como se usa el cuadro combinado en las formas de usuario de VBA. Espero haber sido explicativo y directo. Si tiene alguna pregunta sobre este tema o cualquier otra pregunta relacionada con VBA, pregúnteme en la sección de comentarios a continuación.

Artículos relacionados:

link: / applications-word-outlook-in-vba-Getting-started-with-excel-vba-userforms [Empezando con Excel VBA UserForms] | * Explicaré cómo crear un formulario en Excel, cómo usar Caja de herramientas de VBA, cómo manejar las entradas del usuario y finalmente cómo almacenar las entradas del usuario. Repasaremos estos temas usando un ejemplo y una guía paso a paso.

link: / general-topics-in-vba-vba-variables-in-excel [Variables VBA en Excel] | * VBA significa Visual Basic para Aplicaciones.

Es un lenguaje de programación de Microsoft. Se utiliza con aplicaciones de Microsoft Office como MSExcel, MS-Word y MS-Access, mientras que las variables de VBA son palabras clave específicas.

link: / general-topics-in-vba-excel-vba-variable-scope [Excel VBA Variable Scope] | * En todos los lenguajes de programación, tenemos especificadores de acceso a variables que definen desde dónde se puede acceder a una variable definida. Excel VBA no es una excepción. VBA también tiene especificadores de alcance.

link: / celdas-rangos-filas-y-columnas-en-vba-cuál-es-la-diferencia-entre-byref-y-byval-argumentos-vba-entrevista-pregunta [ByRef y ByVal Arguments] | Cuando un argumento se pasa como un argumento ByRef a una función o sub diferente, se envía la referencia de la variable real. Cualquier cambio realizado en la copia de la variable se reflejará en el argumento original.

link: / files-workbook-and-worksheets-in-vba-delete-sheets-without-confirm-prompts-using-vba-in-microsoft-excel [Eliminar hojas sin mensajes de confirmación usando VBA en Microsoft Excel] | Dado que está eliminando hojas usando VBA, sabe lo que está haciendo.

Le gustaría decirle a Excel que no muestre esta advertencia y elimine la maldita hoja.

link: / files-workbook-and-worksheets-in-vba-add-and-save-new-workbook-using-vba-in-microsoft-excel [Add And Save New Workbook Using VBA In Microsoft Excel 2016] | En este código, primero creamos una referencia a un objeto de libro de trabajo. Y luego lo inicializamos con un nuevo objeto de libro de trabajo. El beneficio de este enfoque es que puede realizar operaciones en este nuevo libro de trabajo fácilmente. Como guardar, cerrar, eliminar, etc `link: / menus-toolbars-status-bar-in-vba-display-a-message-on-the-statusbar-using-vba-in-microsoft-excel [Display A Message On La barra de estado de Excel VBA *] `| La barra de estado en Excel se puede utilizar como monitor de código. Cuando su código VBA es extenso y realiza varias tareas usando VBA, a menudo deshabilita la actualización de la pantalla para que no vea que la pantalla parpadea.

link: / general-topics-in-vba-turn-off-warning-messages-using-vba-in-microsoft-excel [Desactivar mensajes de advertencia usando VBA en Microsoft Excel 2016] | * Este código no solo deshabilita VBA alertas, pero también aumenta la eficiencia del tiempo del código. Veamos cómo.

Artículos populares:

link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-incrementa-su-productividad [50 accesos directos de Excel para aumentar su productividad] | Acelera tu tarea. Estos 50 atajos le permitirán trabajar aún más rápido en Excel.

link: / fórmulas-y-funciones-introducción-de-vlookup-function [La función VLOOKUP en Excel] | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas. enlace: / tips-countif-in-microsoft-excel [COUNTIF en Excel 2016] | Cuente valores con condiciones usando esta asombrosa función. No necesitas filtrar tus datos para contar valores específicos.

La función Countif es esencial para preparar su tablero.

link: / excel-formula-and-function-excel-sumif-function [Cómo usar la función SUMIF en Excel] | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.