¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Macros y lenguaje VBA
  3. Formularios de usuario
Extrait - Macros y lenguaje VBA Descubra la programación en Excel (nueva edición)
Extractos del libro
Macros y lenguaje VBA Descubra la programación en Excel (nueva edición) Volver a la página de compra del libro

Formularios de usuario

Objetivos del capítulo

En este capítulo descubrirá los formularios de usuario, que sirven de interfaz entre su programa y los usuarios de una forma más intuitiva y agradable que a través de los austeros y básicos cuadros de diálogo vistos hasta ahora.

Conocerá los principales controles con los que los usuarios pueden interactuar y creará su primer formulario.

Terminará este capítulo adaptando algunos de los ejercicios de los capítulos anteriores con formularios de usuario creados específicamente.

Formularios de usuario: UserForm

¿Qué es un formulario de usuario?

Cuando quiera solicitar una serie de datos a un usuario, como un apellido, un nombre o la fecha de nacimiento, puede mostrar sucesivamente tres cajas de diálogo tipo InputBox. El riesgo es que el usuario se equivoque en uno de los pasos y tenga que volver a iniciar el proceso.

Los formularios de usuario son cuadros de diálogo avanzados en los que se pueden mostrar objetos con los que el usuario puede interactuar; estos objetos se denominan controles.

Dependiendo de las necesidades de su negocio y del proceso que quiera ofrecer a sus usuarios, los formularios pueden ser muy elaborados o sumamente sencillos.

He aquí dos formularios, uno sencillo y otro más complejo, que permiten a los usuarios insertar automáticamente información en las hojas de Excel:

images/cap19_img_01.png
images/cap19_img_02.png

En la siguiente sección, verá algunos de estos controles y la principal información que puede obtener de ellos.

Al igual que los módulos, cada formulario de usuario estará representado en el Explorador de Proyectos. Los encontrará en la carpeta llamada Formularios.

images/cap19_img_03.png

Crear un primer formulario

Para ofrecer a los usuarios una interfaz sofisticada, se necesitan algunas manipulaciones muy sencillas y rápidas.

Agregar un formulario de usuario

Antes de poder manipular un formulario de usuario, debe añadirlo al libro. Hay dos formas de crear un formulario y también se puede importar uno ya existente.

Por medio del menú

Para añadir un nuevo formulario directamente desde el menú, active el menú Insertar y elija UserForm.

images/cap19_img_04.png

Directamente en el Explorador de proyectos

 Haga clic derecho en el Explorador de proyectos, seleccione el submenú Insertar y elija UserForm.

images/cap19_img_05.png

El nombre predefinido del primer formulario es UserForm1.

images/cap19_img_06.png

 Haga doble clic en el objeto UserForm1 en el Explorador de Proyectos para mostrar el formulario y personalizarlo.

Personalizar un formulario de usuario

Una vez creado el formulario, el primer paso es darle las dimensiones que desee.

Dimensionar el formulario

 Utilice el ratón para mover los cuadrados blancos.

images/cap19_img_07.png

o especifique las propiedades de alto (Height) y ancho (Width) directamente en la ventana de propiedades del formulario.

images/cap19_img_08.png

Agregar controles

Una vez que su formulario tenga las dimensiones deseadas, puede añadirle controles. El Cuadro de herramientas le permite arrastrarlos y soltarlos para insertarlos en el formulario.

images/cap19_img_09.png

 Si el Cuadro de herramientas no está visible, puede hacerlo aparecer yendo al menú Ver y haciendo clic en Cuadro de herramientas.

 En este ejemplo, haga clic en el control Botón de comando:

images/cap19_img_10.png

 Una vez que haya seleccionado el botón de comando en el Cuadro...

Controles en un formulario de usuario

Cuando se utiliza un formulario de usuario, hay varios objetos disponibles, todos ellos con sus propios puntos fuertes y usos dedicados. En esta sección se analizarán algunos.

Cada uno de ellos está presente en el Cuadro de herramientas.

images/cap19_img_14.png

Etiqueta o título: Label

Una etiqueta es un texto que el usuario no puede modificar. Una etiqueta permite indicar información sobre los otros controles que se encuentran en el formulario. Este objeto corresponde al tipo Label en VBA. Puede añadirlo desde el Cuadro de herramientas, images/cap19_IC_A.png.

Texto de la etiqueta: Caption

La etiqueta muestra un texto que solo puede modificarse mediante el código, al que se puede acceder a través de la propiedad Caption del control.

LblBienvenida.Caption = "Bienvenidos" 

Ejemplo 7: modificar el texto de una etiqueta

Cuadro de texto: TextBox

El cuadro de texto es una zona de entrada similar al que se ve con la función InputBox. Este control está presente en el Cuadro de herramientas images/cap19_IC_B.png. El cuadro de texto puede, por ejemplo, tener un color de texto o un fondo personalizable. El cuadro de texto corresponde al tipo TextBox en VBA.

Texto introducido en el cuadro: Value

Cuando quiera recuperar el texto introducido en un cuadro de texto, utilizará la propiedad Value del control.

MsgBox TxtInformacion.Value 

Ejemplo 8: mostrar el contenido de una zona de texto

Cuadro de lista y Cuadro combinado: ListBox...

Gestión de eventos en un formulario

Al igual que se pueden activar instrucciones sobre eventos que tienen lugar en las hojas o en sus libros, también se pueden activar con controles que se encuentran dentro del formulario.

La nomenclatura de los eventos se realiza de acuerdo con la siguiente lógica: Private Sub NombreDelControl_Evento(). A continuación, algunos ejemplos.

Al cargar el formulario: UserForm_Initialize

El primer evento que se activa cuando se carga un formulario es su inicialización; esto corresponde a la macro UserForm_Initialize.

Puede utilizar este evento para rellenar los valores predefinidos en los distintos controles y así preparar mejor el formulario.

Private Sub UserForm_Initialize() 
   TxtDepartamento.Value = "Contabilidad" 
End Sub 

Ejemplo 17: instrucciones que se activan al cargar el formulario

Al hacer clic: Click

Las interacciones en las interfaces pueden realizarse tanto con el teclado como con el ratón y, como los usuarios están especialmente acostumbrados a hacer clic, el evento que detecta el clic en un control puede utilizarse para activar instrucciones. El procedimiento se llamará NombreDelControl_Click. He aquí un ejemplo:

Private Sub BtnCancelar_Click() 
   If MsgBox("¿Está seguro de que quiere cancelar la entrada 
activa?",vbYesNo)=vbYes Then 
      Unload Me ...

Ejercicios

En el marco de estos ejercicios, tratará de crear una interfaz que satisfaga una necesidad específica; le daremos una imagen de ejemplo del formulario de usuario para guiarle.

Formulario básico

 Cree un formulario llamado UsfEjercicio1.

 Coloque un cuadro de texto y un botón de comando en este formulario. El formulario podría tener el siguiente aspecto:

images/cap19_img_15.png

 Cuando el usuario hace clic en el botón, debe aparecer un cuadro de diálogo MsgBox con el texto contenido en dicho control.

Ir un poco más lejos

 Cree un formulario llamado UsfEjercicio2.

 Coloque un cuadro de texto, un botón de comando y una casilla de verificación en este formulario.

 Cuando se muestra el formulario, la casilla de verificación debe estar marcada (valor True) y la caja de texto debe contener el valor Canadá.

Cuando el usuario hace clic en el botón, debe aparecer un cuadro de diálogo que muestre el texto proporcionado, en minúsculas si la casilla está marcada o en mayúsculas si no lo está.

images/cap19_img_16.png