El siguiente ejemplo muestra el uso de userform en VBA, para lo cual diseñaremos una especie de tabla de datos en Excel como la siguiente:
Ingresa a VBA da clic en el menú insertar y escojes la opción de módulo y escribes lo siguiente:
La macro asociada al botón es la siguiente.
Sub main()
Load UserForm1
UserForm1.Show
End SubSub main()
Load UserForm1
UserForm1.Show
End Sub
Vamos al Editor de Visual Basic y pedimos insertar un UserForm, para ello utilizamos el menúInsertar que se encuentra en el propio Editor de Visual Basic, y luego pulsamos sobre UserForm.
Esto genera el UserForm1, que aparecerá como una zona rectangular sobre la que posteriormente iremos introduciendo diferentes elementos del Cuadro de herramientas.
Seguidamente se muestra el Cuadro de Herramientas.
Después de trabajar un rato sobre nuestro primer UserForm quedará así:
Al ejecutar el UserForm1 veremos lo siguiente.
Disponemos de la ventana de propiedades para ir cambiando algunas, como por ejemplo el rótulo que aparece en la cabecera del UserForm1. Hemos denominado al formulario 'Ficha personal'. Esto se hace modificando la propiedad Caption.
Otra ventana importante es la ventana del Proyecto. Finalmente llegaremos a manejar tres formularios, que se pueden ver en la imagen siguiente como:
- UserForm1
- UserForm2
- UserForm3
Pulsando con el botón derecho del ratón sobre el UserForm1 podemos pedir que se vea el objeto (el propio UserForm1) o que se vea el código asociado a sus botones y demás herramientas de control.
Si pedimos Ver código del UserForm1 obtendremos la siguiente ventana.
Private Sub CommandButton1_Click()
Unload UserForm1
UserForm2.Show
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
Private Sub UserForm_Activate()
Label3.Caption = Date
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize()
CommandButton1.SetFocus
End Sub
En el desplegable de arriba, a la izquierda podemos elegir diferentes elementos como se ve en la siguiente imagen.
En el desplegable de la derecha podemos elegir diferentes eventos.
El UserForm2 es el siguiente.
El código del UserForm2 se muestra a continuación:
Private Sub CommandButton1_Click()
Unload UserForm2
UserForm1.Show
End Sub
Private Sub CommandButton2_Click()
Dim id, numero, nombre, departamento As String
Dim sueldo As Integer
id = ComboBox1.Text
numero = TextBox1.Text
nombre = TextBox2.Text
departamento = TextBox3.Text
' sueldo = Val(TextBox4.Text)
UserForm3.Label7 = ComboBox1.Text
UserForm3.Label8 = TextBox1.Text
UserForm3.Label9 = TextBox2.Text
UserForm3.Label10 = TextBox3.Text
UserForm3.Label11 = TextBox4.Text
Unload UserForm2
UserForm3.Show
End Sub
Private Sub UserForm_Initialize()
ComboBox1.AddItem ("Cédula de Ciudadanía")
ComboBox1.AddItem ("Tarjeta De Identidad")
ComboBox1.AddItem ("NIT")
ComboBox1.AddItem ("Cédula de Extranjería")
End Sub
El diseño Del UserForm3 es el siguiente:
y el código utilizado fue:
Private Sub CommandButton1_Click()
Unload UserForm3
UserForm2.Show
End Sub
Private Sub CommandButton2_Click()
Worksheets("hoja1").Activate
Range("b5").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Activate
Loop
ActiveCell.Offset(0, 0) = Label7
ActiveCell.Offset(0, 1) = Label8
ActiveCell.Offset(0, 2) = Label9
ActiveCell.Offset(0, 3) = Label10
ActiveCell.Offset(0, 4) = Label11
Unload UserForm3
UserForm2.Show
End Sub
No hay comentarios:
Publicar un comentario