VBA - Formularios de usuario
UN User Formes un cuadro de diálogo personalizado que hace que la entrada de datos del usuario sea más controlable y más fácil de usar para el usuario. En este capítulo, aprenderá a diseñar un formulario simple y agregar datos a Excel.
Step 1- Navegue a la ventana de VBA presionando Alt + F11 y navegue al menú "Insertar" y seleccione "Formulario de usuario". Al seleccionar, el formulario de usuario se muestra como se muestra en la siguiente captura de pantalla.
Step 2 - Diseñar los formularios utilizando los controles dados.
Step 3- Después de agregar cada control, los controles deben ser nombrados. El título corresponde a lo que aparece en el formulario y el nombre corresponde al nombre lógico que aparecerá cuando escriba el código VBA para ese elemento.
Step 4 - A continuación se muestran los nombres de cada uno de los controles agregados.
Controlar | Nombre lógico | Subtítulo |
---|---|---|
Desde | frmempform | Formulario de empleado |
Caja de etiqueta de identificación de empleado | empid | ID de empleado |
cuadro de etiqueta de nombre | primer nombre | Primer nombre |
Cuadro de etiqueta de apellido | apellido | Apellido |
dob caja de etiquetas | dob | Fecha de nacimiento |
Caja de etiquetas de correo electrónico | identificación del correo | Identificación de correo |
Caja de etiquetas para titulares de pasaportes | Titular de pasaporte | Titular de pasaporte |
Cuadro de texto de ID de emp | txtempid | No aplica |
Cuadro de texto de nombre | txtfirstname | No aplica |
Cuadro de texto de apellido | txtlastname | No aplica |
Cuadro de texto de ID de correo electrónico | txtemailid | No aplica |
Cuadro combinado de fecha | cmbdate | No aplica |
Cuadro combinado de mes | cmbmonth | No aplica |
Cuadro combinado de año | cmbyear | No aplica |
Sí Botón de radio | radio sí | si |
Sin botón de radio | radiono | No |
Botón de enviar | btnsubmit | Enviar |
Botón Cancelar | btncancel | Cancelar |
Step 5 - Agregue el código para el evento de carga del formulario haciendo clic con el botón derecho en el formulario y seleccionando 'Ver código'.
Step 6 - Seleccione 'Formulario de usuario' en el menú desplegable de objetos y seleccione el método 'Inicializar' como se muestra en la siguiente captura de pantalla.
Step 7 - Al cargar el formulario, asegúrese de que los cuadros de texto estén limpios, los cuadros desplegables estén llenos y los botones de radio estén restablecidos.
Private Sub UserForm_Initialize()
'Empty Emp ID Text box and Set the Cursor
txtempid.Value = ""
txtempid.SetFocus
'Empty all other text box fields
txtfirstname.Value = ""
txtlastname.Value = ""
txtemailid.Value = ""
'Clear All Date of Birth Related Fields
cmbdate.Clear
cmbmonth.Clear
cmbyear.Clear
'Fill Date Drop Down box - Takes 1 to 31
With cmbdate
.AddItem "1"
.AddItem "2"
.AddItem "3"
.AddItem "4"
.AddItem "5"
.AddItem "6"
.AddItem "7"
.AddItem "8"
.AddItem "9"
.AddItem "10"
.AddItem "11"
.AddItem "12"
.AddItem "13"
.AddItem "14"
.AddItem "15"
.AddItem "16"
.AddItem "17"
.AddItem "18"
.AddItem "19"
.AddItem "20"
.AddItem "21"
.AddItem "22"
.AddItem "23"
.AddItem "24"
.AddItem "25"
.AddItem "26"
.AddItem "27"
.AddItem "28"
.AddItem "29"
.AddItem "30"
.AddItem "31"
End With
'Fill Month Drop Down box - Takes Jan to Dec
With cmbmonth
.AddItem "JAN"
.AddItem "FEB"
.AddItem "MAR"
.AddItem "APR"
.AddItem "MAY"
.AddItem "JUN"
.AddItem "JUL"
.AddItem "AUG"
.AddItem "SEP"
.AddItem "OCT"
.AddItem "NOV"
.AddItem "DEC"
End With
'Fill Year Drop Down box - Takes 1980 to 2014
With cmbyear
.AddItem "1980"
.AddItem "1981"
.AddItem "1982"
.AddItem "1983"
.AddItem "1984"
.AddItem "1985"
.AddItem "1986"
.AddItem "1987"
.AddItem "1988"
.AddItem "1989"
.AddItem "1990"
.AddItem "1991"
.AddItem "1992"
.AddItem "1993"
.AddItem "1994"
.AddItem "1995"
.AddItem "1996"
.AddItem "1997"
.AddItem "1998"
.AddItem "1999"
.AddItem "2000"
.AddItem "2001"
.AddItem "2002"
.AddItem "2003"
.AddItem "2004"
.AddItem "2005"
.AddItem "2006"
.AddItem "2007"
.AddItem "2008"
.AddItem "2009"
.AddItem "2010"
.AddItem "2011"
.AddItem "2012"
.AddItem "2013"
.AddItem "2014"
End With
'Reset Radio Button. Set it to False when form loads.
radioyes.Value = False
radiono.Value = False
End Sub
Step 8- Ahora agregue el código al botón Enviar. Al hacer clic en el botón enviar, el usuario debería poder agregar los valores a la hoja de trabajo.
Private Sub btnsubmit_Click()
Dim emptyRow As Long
'Make Sheet1 active
Sheet1.Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
'Transfer information
Cells(emptyRow, 1).Value = txtempid.Value
Cells(emptyRow, 2).Value = txtfirstname.Value
Cells(emptyRow, 3).Value = txtlastname.Value
Cells(emptyRow, 4).Value = cmbdate.Value & "/" & cmbmonth.Value & "/" & cmbyear.Value
Cells(emptyRow, 5).Value = txtemailid.Value
If radioyes.Value = True Then
Cells(emptyRow, 6).Value = "Yes"
Else
Cells(emptyRow, 6).Value = "No"
End If
End Sub
Step 9 - Agregue un método para cerrar el formulario cuando el usuario haga clic en el botón Cancelar.
Private Sub btncancel_Click()
Unload Me
End Sub
Step 10- Ejecute el formulario haciendo clic en el botón "Ejecutar". Ingrese los valores en el formulario y haga clic en el botón 'Enviar'. Automáticamente, los valores fluirán hacia la hoja de trabajo como se muestra en la siguiente captura de pantalla.