Visual Basic es un lenguaje excelente para automatizar tareas repetitivas en Excel. Imagine llevar su automatización a un nivel superior mediante la creación de formularios de usuario altamente funcionales que también se vean ordenados para los usuarios finales.
Los formularios de usuario en VBA le presentan un lienzo en blanco; puede diseñar y organizar los formularios para que se ajusten a sus necesidades en un momento dado.
En esta guía, aprenderá a crear un formulario de ingreso de datos basado en el estudiante que captura información relevante en hojas de Excel vinculadas.
Crear un formulario de usuario con Excel VBA
Abra un nuevo libro de Excel y realice algunos pasos preliminares antes de comenzar a crear su formulario de ingreso de datos.
Guarde su libro de trabajo con el nombre deseado; no olvide cambiar el tipo de archivo a un Libro de Excel habilitado para macros.
Relacionados:Sitios web y blogs para aprender consejos y trucos de Excel
Agregue dos hojas a este libro de trabajo, con los siguientes nombres:
- Hoja1: Casa
- Hoja2:Base de datos de estudiantes
Siéntase libre de cambiar estos nombres según sus requisitos.
En el Casa hoja, agregue un botón para controlar la macro del formulario de usuario. Ve a la Desarrollador pestaña y haga clic en el Botón opción de la Insertar la lista desplegable. Coloque el botón en cualquier lugar de la hoja.
Una vez que haya colocado el botón, cámbiele el nombre. Haga clic derecho sobre él y haga clic en Nuevo para asignar una nueva macro para mostrar el formulario.
Introduzca el siguiente código en la ventana del editor:
Subbotón1_Click()
Formulario de usuario. Show
Finalizar sub
Una vez el Casa y Base de datos de estudiantes las hojas están listas, es hora de diseñar el formulario de usuario. Navegar a la Desarrollador pestaña y haga clic en básico visual para abrir el Editor. Alternativamente, puede presionar ALT+F11 para abrir la ventana del editor.
Clickea en el Insertar pestaña y seleccione Formulario de usuario.
Un formulario de usuario en blanco está listo para usar; se abre una caja de herramientas junto con el formulario, que tiene todas las herramientas esenciales para diseñar el diseño.
En la caja de herramientas, seleccione el Marco opción. Arrastre esto al formulario de usuario y cambie su tamaño.
En el (nombre) opción, puede cambiar el nombre del marco. Para mostrar el nombre en el front-end, puede cambiar el nombre en el Subtítulo columna.
A continuación, seleccione el Etiqueta de la caja de herramientas e inserte dos etiquetas dentro de este marco. Renombrar el primero como Numero de aplicacion y el segundo como Identificación del Estudiante.
Se aplica la misma lógica de cambio de nombre; cambiar los nombres a través del Subtítulo opción dentro de la Propiedades ventana. Asegúrese de seleccionar la etiqueta respectiva antes de cambiar su nombre.
A continuación, inserte dos cuadros de texto junto a los cuadros de etiquetas. Estos se utilizarán para capturar las entradas del usuario. Cambie los nombres de dos cuadros de texto a través del (Nombre) columna dentro de la Propiedades ventana. Los nombres son los siguientes:
- Cuadro de texto1: txtSolicitudNo
- Cuadro de texto2: txtIDEstudiante
Diseño del marco de detalles del estudiante
Inserte un marco vertical y agregue 10 etiquetas y 10 cuadros de texto. Renombra cada uno de ellos de la siguiente manera:
- Etiqueta3: Nombre
- Etiqueta4: Años
- Etiqueta5: Habla a
- Etiqueta6: Teléfono
- Etiqueta7: Ciudad
- Etiqueta8: País
- Etiqueta9: Fecha de nacimiento
- Etiqueta10: Código postal
- Etiqueta11: Nacionalidad
- Etiqueta12: Género
Inserte los cuadros de texto correspondientes junto a estas etiquetas; insertar dos (o más) botón de opción cuadros de la caja de herramientas del formulario de usuario al lado del género etiqueta. Renombrarlas Masculino y Mujer (junto con Custom), respectivamente.
Diseño del marco de detalles del curso
Agregue otro marco vertical e inserte seis etiquetas y seis cuadros de texto correspondientes a cada etiqueta. Cambie el nombre de las etiquetas de la siguiente manera:
- Etiqueta13: Nombre del curso
- Etiqueta14: Identificación del curso
- Etiqueta15: Fecha de inicio de inscripción
- Etiqueta16: Fecha de finalización de la inscripción
- Etiqueta17: Duración del curso
- Etiqueta18: Departamento
Relacionados: 4 errores a evitar al programar macros de Excel con VBA
Diseño del marco de detalles de pago
Insertar un nuevo marco; agregue una nueva etiqueta y cámbiele el nombre "¿Desea actualizar los detalles de pago?" Insertar dos botones de opción; renombrarlas sí y No.
Del mismo modo, agregue un nuevo marco que contenga dos etiquetas adicionales y dos cuadros combinados. Cambie el nombre de las etiquetas de la siguiente manera:
- Etiqueta19: Pago recibido
- Etiqueta20: Modo de pago
Diseño del panel de navegación
En el cuadro final, agregue tres botones de la caja de herramientas, que contendrá el código para la ejecución de los formularios.
Cambie el nombre de los botones de la siguiente manera:
- Botón 1: Guardar detalles
- Botón2: Forma clara
- Botón3: Salida
Escribir el código de formulario automatizado: botón Guardar detalles
Haga doble clic en el Guardar detalles botón. En el módulo siguiente, inserte el siguiente código:
Sub CommandButton2_Click() privado
'declarar las variables utilizadas a lo largo de los códigos
Dim sht como hoja de trabajo, sht1 como hoja de trabajo, lastrow como largo'Agregue validaciones para verificar si se están ingresando valores de caracteres en campos numéricos.
Si VBA.IsNumeric (txtApplicationNo. Value) = False Entonces
MsgBox "Solo se aceptan valores numéricos en el Número de Solicitud", vbCritical
Salir de Sub
Terminara siSi VBA.IsNumeric (txtStudentID.Value) = False Entonces
MsgBox "Solo se aceptan valores numéricos en el ID del estudiante", vbCritical
Salir de Sub
Terminara siSi VBA.IsNumeric (txtAge. Valor) = Falso Entonces
MsgBox "Solo se aceptan valores numéricos en Edad", vbCritical
Salir de Sub
Terminara siSi VBA.IsNumeric (txtPhone. Valor) = Falso Entonces
MsgBox "Solo se aceptan valores numéricos en Número de teléfono", vbCritical
Salir de Sub
Terminara siSi VBA.IsNumeric (Me.txtCourseID.Value) = False Entonces
MsgBox "Solo se aceptan valores numéricos en ID de curso", vbCritical
Salir de Sub
Terminara si'enlace los campos del cuadro de texto con las hojas subyacentes para crear una base de datos móvil
Establezca sht = ThisWorkbook. Hojas ("Base de datos de estudiantes")'calcular la última fila poblada en ambas hojas
última fila = mierda. Rango("a" & Filas. Cuenta). Fin (xlUp). Fila + 1
'pega los valores de cada cuadro de texto en sus respectivas celdas de hoja
con mierda
.Range("a" & lastrow).Valor = txtApplicationNo. Valor
.Rango("b" & última fila).Valor = txtIDEstudiante.Valor
.Range("c" & lastrow).Valor = txtName. Valor
.Range("d" & lastrow).Valor = txtAge. Valor
.Rango("e" & última fila).Valor = txtDOB.Valor
.Range("g" & lastrow).Valor = txtAddress. Valor
.Range("h" & lastrow).Valor = txtTeléfono. Valor
.Range("i" & lastrow).Valor = txtCiudad. Valor
.Rango("j" & última fila).Valor = txtPaís. Valor
.Range("k" & lastrow).Valor = txtZip. Valor
.Range("l" & lastrow).Valor = txtNacionalidad. Valor
.Range("m" & lastrow).Valor = txtCurso. Valor
.Rango("n" & última fila).Valor = txtIDCurso.Valor
.Range("o" & lastrow).Valor = txtenrollmentstart. Valor
.Range("p" & lastrow).Valor = txtenrollmentend. Valor
.Range("q" & lastrow).Valor = txtcursoduración. Valor
.Range("r" & lastrow).Valor = txtDept. ValorTerminar con
mierda Activar'determinar el género según la entrada del usuario
Si optMale. Valor = Verdadero Entonces sht. Rango ("g" y última fila). Valor = "Masculino"
Si optFemale. Valor = Verdadero Entonces sht. Rango ("g" y última fila). Valor = "Mujer"
'Mostrar un cuadro de mensaje, en caso de que el usuario seleccione el botón de opción SíSi opta Sí. Valor = Verdadero Entonces
MsgBox "Seleccione los detalles de pago a continuación"
Demás:
Salir de SubTerminara si
Finalizar sub
Si no está seguro de lo que significa alguna parte o parte del código, no se preocupe. Lo explicaremos detalladamente en la siguiente sección.
Explicación del código de formulario automatizado
Los cuadros de texto contendrán una combinación de texto y valores numéricos, por lo que es esencial restringir la entrada del usuario. los Numero de aplicacion, Identificación del Estudiante, Años, Teléfono, Identificación del curso, y Duración del curso debe contener solo números, mientras que el resto contendrá texto.
Usando un SI instrucción, el código desencadena ventanas emergentes de error si el usuario ingresa un carácter o un valor de texto en cualquiera de los campos numéricos.
Dado que las validaciones de errores están en su lugar, debe vincular los cuadros de texto con las celdas de la hoja.
los última fila Las variables calcularán la última fila poblada y almacenarán los valores en ellas para uso dinámico.
Finalmente, los valores se pegan desde los cuadros de texto en la hoja de Excel vinculada.
Borrar formulario y códigos de botón de salida
En el claro botón, debe escribir el código para borrar los valores existentes del formulario de usuario. Esto se puede hacer de la siguiente manera:
Conmigo
.txtNúmero de aplicación valor = ""
.txtIDEstudiante.Valor = ""
..txtNombre. valor = ""
.txtEdad. valor = ""
.txtAddress. valor = ""
.txtTeléfono. valor = ""
.txtCiudad. valor = ""
.txtPaís. valor = ""
.txtDOB.Valor = ""
.txtZip. valor = ""
.txtNacionalidad. valor = ""
.txtCurso. valor = ""
.txtIDCurso.Valor = ""
.txtenrollmentstart. valor = ""
.txtenrollmentend. valor = ""
.txtcursoduración. valor = ""
.txtDepto. valor = ""
.cmbModoPago. valor = ""
.cmbPago. valor = ""
.optMujer. Valor = Falso
.optMale. Valor = Falso
.optSí. Valor = Falso
.optNo. Valor = Falso
Terminar con
En el Salida botón, ingrese el siguiente código para cerrar el formulario de usuario.
Botón de comando secundario privado5_Click()
Descargame
Finalizar sub
Como último paso, debe ingresar algunas piezas finales de código para crear los valores desplegables para los cuadros combinados (dentro de los marcos de pago).
Formulario de subusuario privado_Activar()
Con cmbPago
.Claro
.Añadir artículo ""
.AddItem "Sí"
.AddItem "No"
Terminar con
Con cmbPaymentMode
.Claro
.Añadir artículo ""
.AddItem "Efectivo"
.AddItem "Tarjeta"
.AddItem "Comprobar"
Terminar con
Finalizar sub
La automatización de VBA facilita el trabajo
VBA es un lenguaje multifacético que sirve para muchos propósitos. Los formularios de usuario son solo un aspecto dentro de VBA: hay muchos otros usos, como consolidar libros y hojas de trabajo, fusionar varias hojas de Excel y otros usos prácticos de automatización.
No importa el objetivo de automatización, VBA está a la altura de la tarea. Si continúa aprendiendo y practicando, no hay ningún aspecto de su flujo de trabajo que no pueda mejorar.
Fusionar datos de más de una hoja de Excel en el mismo libro de trabajo es una verdadera molestia... hasta que use macros VBA.
Leer siguiente
- Programación
- Productividad
- Programación visual básica
- Microsoft Excel

Gaurav Siyal tiene dos años de experiencia en redacción, escribiendo para una serie de firmas de marketing digital y documentos del ciclo de vida del software.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse