Lab 4444
Lab 4444
Lab 4444
DD-106
Página 1/19
Laboratorio – 04
TEMA: FORMULARIOS
OBJETIVOS
REQUERIMIENTOS
INTRODUCCIÓN
Los formularios en VBA permiten implementar interfaces de usuario mucho más amigables.
Los formularios se implementan en dos etapas:
1
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 2/19
Laboratorio – 04
Para cambiar el nombre del nuevo botón y el texto que muestra dicho botón aplicaremos el siguiente
procedimiento:
o Click derecho sobre el botón Propiedades
o En la ventana Propiedades. Modifique los siguientes valores:
Propiedad Nuevo Valor
(Name) botonIngresar
Caption Ingreso de datos
Font Negrita, Tamaño 12
Verifique el nuevo aspecto que tiene el botón ActiveX
Doble click al botón para modificar el código asociado al evento click de dicho botón. Ingrese el
siguiente comando:
Antes de verificar la acción del botón anterior. Desactive el modo de diseño a través de la siguiente
herramienta de la ficha Desarrollador:
2
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 3/19
Laboratorio – 04
Presione el nuevo botón y realice el ingreso de algunos registros a través del formulario que aparece.
(Cierre cualquier cuadro de diálogo que pueda mostrarse)
Mencione algunas ventajas y desventajas del uso del comando ”ShowDataForm” para la creación de
un formulario de ingreso y consulta de datos
Ventajas Desventajas
3
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 4/19
Laboratorio – 04
En la herramienta visual Basic. Agregue un nuevo Formulario empleando la opción del menú:
Insertar UserForm
4
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 5/19
Laboratorio – 04
Checkbox: Casillas de
Label: Etiquetas o títulos verificación
Cuadros de Texto:
(TextBox 1 - 4)
Desde la ventana de Propiedades, modifique las siguientes propiedades de cada uno de los controles
Label:
5
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 6/19
Laboratorio – 04
Desde la ventana de Propiedades, modifique las siguientes propiedades de cada uno de los controles
TextBox:
Control Propiedad Nuevo Valor
TextBox1 (Name) txtNro
TextBox2 (Name) txtCurso
TextBox3 (Name) txtNota
TextBox4 (Name) txtEstado
Desde la ventana de Propiedades, modifique las siguientes propiedades de cada uno de los controles
CommandButton:
Control Propiedad Nuevo Valor
CommandButton1 (Name) btnAceptar
Caption Aceptar
CommandButton2 (Name) btnSalir
Caption Salir
6
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 7/19
Laboratorio – 04
Adicionaremos al evento anterior la única instrucción VBA requerida para cerrar el formulario
Doble click al botón para modificar el código asociado al evento click de dicho botón. Ingrese el
siguiente comando:
Antes de verificar la acción del botón anterior. Desactive el modo de diseño a través de la siguiente
herramienta de la ficha Desarrollador:
Presione el nuevo botón y verifique si se muestra el nuevo formulario que acaba de crear y si funciona
el botón Salir
Anote a continuación los principales detalles asociados al desarrollo del ejercicio realizado hasta el
momento
8
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 9/19
Laboratorio – 04
3. Copiar el valor ingresado en cada uno de los controles TextBox de nuestro formulario en cada
una de las celdas de la nueva fila que se acaba de ubicar. Esta acción físicamente agregará la
información del nuevo registro en nuestra hoja “Datos”
4. Enviar un aviso al usuario que la inserción del nuevo registro se realizó correctamente
5. Colocar en blanco cada uno de los controles TextBox del formulario para facilitar el ingreso de
un nuevo registro.
Active el formulario creado en las secciones anteriores
Doble click sobre el botón “Aceptar” para acceder al esqueleto de su evento Click
9
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 10/19
Laboratorio – 04
Verificación de la existencia
del nuevo registro agregado
a través de nuestro
formulario
Anote a continuación los principales detalles asociados al desarrollo del ejercicio realizado a la fecha
10
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 11/19
Laboratorio – 04
En la herramienta visual Basic. Agregue un nuevo Formulario empleando la opción del menú:
Insertar UserForm
Diseñe el nuevo formulario como se indica a continuación (primero crear los marcos o frames):
Marco1
Marco2
Desde la ventana de propiedades modifique las siguientes propiedades de los controles indicados:
11
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 12/19
Laboratorio – 04
12
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 13/19
Laboratorio – 04
La Subrutina anterior hace referencia a una función denominada SiguienteNro(). Esta función se
encargará de calcular en forma automática el número del nuevo registro a ingresar. Adicionaremos
dicha función a continuación de la subrutina limpiarControles() con el siguiente código:
Para modificar el valor de la nota se hará uso del control SpinButton denominado SpinNota en nuestro
formulario. Para ello dicho control posee un evento denominado Change() el cual se ejecuta cada vez
que el usuario interactúa con el control. A continuación se muestra el código de dicho control. (Nota:
Para acceder al evento Change()presione doble click sobre el control numérico):
Ahora, cada vez que el contenido del Cuadro de Texto de la nota sea modificada por el control
numérico anterior, se debe verificar si la nota que se vaya asignando corresponde a una nota
aprobatoria o no y por lo tanto se debe actualizar en forma automática el estado de los botones de
radio asociados al estado. Por lo tanto activaremos el evento Change() del cuadro de texto de la nota,
para que al modificarse su contenido, automáticamente se actualice su estado:
Al presionar el botón Salir deberá cerrarse la ventana, para ello es necesario adicionar el siguiente
código al evento click del botón Salir:
En la mayoría de los casos es necesario preguntar al usuario si realmente desea cerrar la ventana para
evitar manipulaciones involuntarias del botón Salir o del botón Cerrar del propio formulario. Para ello
adicionaremos el siguiente código de validación en el formulario en el evento QueryClose()
14
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 15/19
Laboratorio – 04
Finalmente será necesario adicionar el código para el evento click del botón Grabar. A continuación se
muestra dicho código:
Adicione una macro a su documento Excel denominada: m_ing_notas con el siguiente código:
Adicione un Botón, de la categoría controles de formularios, a su documento Excel y asocie dicho botón
a la macro anterior
Ejecute el formulario anterior y adicione registros de cursos y notas:
15
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 16/19
Laboratorio – 04
16
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 17/19
Laboratorio – 04
En la sección general adicione una variable de nombre “fila”. Dicha variable servirá para referenciar el
numero de fila del registro actual:
Los últimos dos eventos requieren el empleo de una subrutina denominada mostrarRegistro. Dicha
subrutina se encargará de cargar el formulario con los datos del registro actual. A continuación se
muestra el código (agregarlo al final de todo):
17
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 18/19
Laboratorio – 04
3. Trabajo adicional
Adicione al formulario anterior dos botones adicionales (Inicio, Último). Los cuales permitirán
desplazarnos hacia el primer registro o hacia el último registro respectivamente
Adicione al formulario anterior un botón denominado BUSCAR el cual al ser presionado buscará el
primer registro cuyo nombre de curso sea igual al texto ingresado en el cuadro de texto “txtCurso”
18
EXCEL AVANZADO CON MACROS Nro. DD-106
Página 19/19
Laboratorio – 04
OBSERVACIONES Y CONCLUSIONES
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
____________________________________________________________________________
19