Primeros pasos con Excel VBA FormulariosDeUsuario
En este artículo, aprenderá los conceptos básicos de los formularios de usuario de VBA. 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. Si está leyendo esto, supongo que conoce los conceptos básicos de Excel VBA.
Sin más demora, comencemos.
Cree un formulario de inversión en Excel y almacene el registro
Empezaremos diseñando el formulario de usuario. En este formulario de usuario, tendremos un cuadro de texto para el nombre, uno para la edad, uno para el monto de la inversión y un par de botones de opción para el género. Empecemos.
Diseñar el formulario de usuario
Abra el editor visual básico en Excel usando el atajo ALT + F11. En el cuadro de proyecto, haga clic con el botón derecho en VBAProject (su archivo). En la opción de inserción, elija UserForm. Inmediatamente, se creará una nueva carpeta y se encontrará su formulario de usuario. Todos los formularios de usuario de este proyecto se agregarán en esta carpeta.
Cambie el nombre del formulario a InvestmentForm en el cuadro de propiedades *.
Agregar elementos al formulario: en la imagen de arriba ya he agregado elementos (etiquetas, cuadro de texto, botón de comando). Sin embargo, un nuevo formulario de usuario está completamente en blanco. Necesita usar la caja de herramientas para agregar elementos a su formulario. Si no puede ver la caja de herramientas, consígala en la pestaña Ver *.
Elementos de nombre *: el cuadro de texto, las etiquetas, los botones, etc., son elementos.
Y para usarlos en el código VBA, debemos darles nombres. Usamos la ventana de propiedad para cambiar su nombre. Seleccione el elemento. Aquí selecciono el cuadro de texto para el nombre. Vaya a la ventana de propiedades y cambie el nombre a «NameBox *». Haz lo mismo con cada elemento que vayas a utilizar. (no necesitas nombrar etiquetas, a menos que quieras que se pueda hacer clic en ellas.)
He cambiado el nombre del elemento como se muestra a continuación y usaré estos nombres para referirme a ellos. Puedes tener diferentes nombres. Simplemente reemplace estos nombres con su nombre. Estos son nombres de VBA (nombre de código) que se utilizarán en el código. No se reflejarán en la forma.
El texto que puede ver en las etiquetas y los botones es «Leyendas». El nombre y el título del elemento pueden ser los mismos, si lo desea.
Element |
Rename |
Name Text Box |
NameBox |
Age Text Box |
AgeBox |
Male Option Button |
MaleOption |
Female Option Button |
FemaleOption |
Investment Text Box |
InvestBox |
Submit Command Button |
SubmitButton |
Cancel Command Button |
CancelButton |
Mostrar formulario de usuario al usuario: ahora que el formulario está listo, mostrámoslo al usuario. Pero espera, ¿cómo hago eso? No hay ninguna opción en la hoja de trabajo para llamar al formulario de usuario. En realidad, el formulario de usuario debe activarse. No se puede mostrar por sí solo. Puede utilizar un botón de comando, una subrutina o un evento para hacer que el formulario aparezca en la pantalla.
Aquí voy a usar un botón de comando para activar el formulario de usuario.
-
En una hoja de trabajo, ¿ir a la pestaña de desarrolladores? ¿Insertar? Botón (control de formulario).
Cambiarle el nombre de forma abierta.
-
Haz clic derecho sobre él. Haga clic en asignar macro y luego haga clic en nuevo.
Se creará un sub inmediatamente. Ahora agregue esta línea a ese sub.
Sub Open_Form() 'Opening form InvestmentForm.Show End Sub
Se hace. Regrese a esa hoja y haga clic en el botón. Aparecerá el formulario de usuario.
Llenar la hoja usando el formulario de usuario de VBA: cuando hacemos clic en el botón de comando (formulario abierto), aparece el formulario. Ahora puedes completar el formulario. Pero cuando hacemos clic en el botón enviar, los datos deberían haberse ingresado en esta hoja, pero no sucede nada. Porque no hemos escrito ninguna instrucción vba para eso. Necesitamos almacenar los datos del formulario de usuario en una hoja. Regrese a VBA y haga doble clic en el botón Enviar. Se creará un nuevo sub automáticamente. Este sub está incrustado en el formulario y no puede encontrarlo en ningún módulo. Esto es lo mismo para cada elemento de la forma.
-
Escriba este código vba en ese sub.
Private Sub SubmitButton_Click() Sheet1.Activate 'get first empty row on sheet (read about it here) lstrow = Cells(Rows.Count, 1).End(xlUp).Row Set firstEmptyRow = Range("A" & lstrow + 1) 'initialize each cell with data firstEmptyRow.Offset(0, 0).Value = nameBox.Value 'first cell firstEmptyRow.Offset(0, 1).Value = AgeBox.Value 'first cell to the right firstEmptyRow.Offset(0, 3).Value = InvestBox.Value 'third cell to the right 'checking radio button If MaleOption.Value = True Then firstEmptyRow.Offset(0, 2).Value = "Male" 'second cell to the right Else firstEmptyRow.Offset(0, 2).Value = "Female" 'second cell to the right End If 'Closing form Unload Me End Sub
El fragmento de código VBA anterior se ejecuta cuando se hace clic en el botón Enviar. Encuentra la primera fila vacía en la hoja y la llena con los valores proporcionados en el formulario. Y al final cierra el formulario usando el comando “Descargarme”.
Utilice el comando Cancelar para cerrar el formulario. Por ahora, el botón cancelar es inútil. No hace nada. En caso de que desee cancelar la entrada, puede utilizar el botón cancelar. En ese caso: * Haga doble clic en el botón de comando cancelar en el editor de VBA. Se creará un nuevo sub. Simplemente escriba esta línea de código para cerrar el formulario de usuario.
Private Sub CancelButton_Click() 'Closing form Unload Me End Sub
Finalmente, el código del formulario se verá así.
Y eso es. Así es como se usa el formulario de usuario de Excel vba para obtener información de los usuarios. En este artículo, acabamos de explorar el uso básico del formulario de usuario, para que se familiarice con él. Es simple, si tiene conocimientos básicos de vba.
En artículos futuros, exploraremos funcionalidades más avanzadas de los formularios de usuario de vba en Excel. Crearemos un formulario de usuario en Excel para hacer mucho más.
Exploraremos diferentes herramientas y elementos disponibles para vba userform.
Hasta entonces practica esto. Puede descargar este archivo como referencia si lo desea.
Así que sí chicos, este fue un tutorial de forma de usuario pequeño y simple. Espero que haya sido ingenioso. Avíseme si tiene alguna duda al respecto, hágamelo saber en la sección de comentarios a continuación.
Artículos relacionados
`link: / user-forms-input-boxes-in-vba-change-the-value-content-of-varios-user-form-controls-using-vba-in-microsoft-excel [Cambiar el valor / contenido de varios UserForm-controles usando VBA en Excel] `
`link: / user-forms-input-boxes-in-vba-prevent-a-userform-from-close-when-the-user-click-the-x-button-using-vba-in-microsoft-excel [ Evitar que un formulario de usuario se cierre cuando el usuario hace clic en el botón x utilizando VBA en Excel] `
`link: / user-forms-input-boxes-in-vba-return-a-userdefined-cell-reference-from-a-dialog-using-vba-in-microsoft-excel [Devuelve las celdas referenciadas por el usuario usando RefEdit control de formulario de usuario en Excel] `
Artículos populares:
enlace: / fórmulas-y-funciones-introducción-de-vlookup-function [La función VLOOKUP en Excel]
enlace: / tips-countif-in-microsoft-excel [COUNTIF en Excel 2016]
link: / excel-formula-and-function-excel-sumif-function [Cómo usar la función SUMIF en Excel]