Creación de un formulario personalizado (II)

Siguiendo con la creación de nuestro formulario personalizado que empezamos la semana pasada, vamos ahora a crear un procedimiento para cada uno de los controles del formulario que serán los que le darán la funcionalidad.
Retomaremos el archivo Excel que guardamos y volveremos a abrir el editor VBA para a continuación seleccionar el objeto “Formulario1” que creamos en la anterior publicación.

formulario01

Nuestro primer paso va a ser cambiar el título del formulario (que actualmente figura “UserForm1” por uno más representativo. Para ello, nos dirigiremos a la ventana “Propiedades” y cambiaremos el valor de la propiedad “Caption” por el texto “Inserte sus datos personales

Ha cambiado el título del formulario.
Ha cambiado el título del formulario.

A continuación haremos doble clic sobre el campo a la derecha de “Inserte su nombre” y se nos mostrará el código de formulario, que hasta ahora estaba vacío, donde se ha declarado un procedimiento nuevo con el evento “Change” del campo que hemos hecho doble clic.

Al hacer doble clic en un control se crea automáticamente un código para el evento correspondiente.
Al hacer doble clic en un control se crea automáticamente un código para el evento correspondiente.

Dentro del procedimiento insertaremos la siguiente instrucción:
Range(«B1») = CampoNombre.Text

formulario04

Con ello hemos indicado que el valor de la celda B1 será igual a la cadena de texto introducida en CampoNombre. Para volver al objeto del formulario haremos doble clic sobre el objeto “Formulario1” o bien pulsaremos el botón “Ver objeto” de la cabecera de la ventana “Proyecto

Podemos movernos entre el código y el objeto “Formulario” pulsando los botones correspondientes de la ventana Proyecto.
Podemos movernos entre el código y el objeto “Formulario” pulsando los botones correspondientes de la ventana Proyecto.

Ahora haremos doble clic sobre el segundo campo de texto del formulario y en el nuevo procedimiento creado, insertaremos la instrucción “Range(«C1») = CampoDomicilio.Text

formulario06

De este modo el valor que introduzcamos en este campo se asignará a la celda C1 de la hoja que se encuentre activa. Pasaremos otra vez a la vista objeto para asignar la instrucción al botón “Guardar” de nuestro formulario. Para ello, en la ventana de “Propiedades” cambiaremos en primer lugar su nombre por “Botón_Guardar” y el valor de la propiedad “Default

formulario07Para insertar el procedimiento correspondiente, haremos doble clic sobre este botón en el formulario e introduciremos el siguiente código:
If CampoNombre.Text = «» Then
       MsgBox «Inserta el nombre del cliente»
    ElseIf CampoDomicilio.Text = «» Then
       MsgBox «Inserta el domicilio social del cliente»
    Else
      ActiveWorkbook.Save
      Unload Formulario1
    End If
    End Sub

 

Si el usuario deja alguno de los campos de texto en blanco, se mostrará una advertencia de ello. Si los campos han sido rellenados se guardará el libro activo y se cerrará el formulario.
Si el usuario deja alguno de los campos de texto en blanco, se mostrará una advertencia de ello. Si los campos han sido rellenados se guardará el libro activo y se cerrará el formulario.

 

Haremos lo propio también con el botón “Cerrar” cambiando su nombre por “Botón_Cerrar” y el valor de la propiedad “Cancel” por “True”.

formulario08Por último haremos doble clic sobre el botón “Cerrar” del formulario e insertaremos la instrucción para cerrar el formulario directamente.

La instrucción para cerrar el formulario, como hemos visto en el paso anterior, es "Unload" y el nombre del formulario. Esta vez no hemos puesto la instrucción de guardar el libro activo.
La instrucción para cerrar el formulario, como hemos visto en el paso anterior, es «Unload» y el nombre del formulario. Esta vez no hemos puesto la instrucción de guardar el libro activo.

En próximas publicaciones revisaremos otras instrucciones del lenguaje VBA.


Descubre más desde Asiento descuadrado

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *