Un cuadro combinado en un formulario de usuario es como un menú desplegable, que se puede utilizar 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 al 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 los formularios de usuario en VBA aquí.
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.
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 los 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 cuadro combinado en subrutina de llamada de UserForm
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 = estados UserForm1.Show End Sub
Defino una matriz de "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.
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, en el menú desplegable de la izquierda, seleccione formulario de usuario. Luego, en el menú desplegable de la derecha, seleccione inicializar.
Se insertará un subnombre vacío UserForm_Initialize (). Todo lo 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 = estados 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. Así que 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.
Introducción a Excel VBA UserForms| Explicaré cómo crear un formulario en Excel, cómo usar la 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.
Variables de VBA en Excel| VBA son las siglas de 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.
Alcance variable de Excel VBA| 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.
Argumentos ByRef y ByVal | Cuando se pasa un argumento como 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.
Elimine 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.
Agregar y guardar un nuevo libro de trabajo usando VBA en 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, borrar, etc.
Mostrar un mensaje en 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.
Desactive los mensajes de advertencia con VBA en Microsoft Excel 2016| Este código no solo deshabilita las alertas de VBA, sino que también aumenta la eficiencia de tiempo del código. Veamos cómo.
Articulos populares:
50 accesos directos de Excel para aumentar su productividad | Acelera tu tarea. Estos 50 accesos directos le permitirán trabajar aún más rápido en Excel.
La función BUSCARV 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.
CONTAR.SI en Excel 2016 | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar valores específicos. La función Countif es esencial para preparar su tablero.
Cómo utilizar la función SUMIF en Excel | Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.