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:

instagram viewer
  1. Hoja1: Casa
  2. 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 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 si

Si VBA.IsNumeric (txtStudentID.Value) = False Entonces
MsgBox "Solo se aceptan valores numéricos en el ID del estudiante", vbCritical
Salir de Sub
Terminara si

Si VBA.IsNumeric (txtAge. Valor) = Falso Entonces
MsgBox "Solo se aceptan valores numéricos en Edad", vbCritical
Salir de Sub
Terminara si

Si VBA.IsNumeric (txtPhone. Valor) = Falso Entonces
MsgBox "Solo se aceptan valores numéricos en Número de teléfono", vbCritical
Salir de Sub
Terminara si

Si 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. Valor

Terminar 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 Sub

Terminara 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.

Cómo combinar varias hojas de Excel usando una macro de VBA

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

CuotaPíoCorreo electrónico
Temas relacionados
  • Programación
  • Productividad
  • Programación visual básica
  • Microsoft Excel
Sobre el Autor
Gaurav Siyal (50 artículos publicados)

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.

Más de Gaurav Siyal

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