Hacer formulario en excel

Puede hacer formulario en excel personalizados insertando un formulario de usuario en el Editor de Visual Basic (VBE), para ingresar a este editor puede acerlo desde la ficha programador.

Para ello, seleccione Insertar | UserForm en la barra de menú de VBE.

userform excel

 

Haga clic en ‘UserForm’ y aparecerá un nuevo formulario en excel, en blanco listo para que lo desarrolle

insertar formulario en excel

Al crear formulario en excel en sí (que se muestra como ‘UserForm1’) parece bastante pequeño, pero puede usar los controladores que lo rodean para agrandarlo o hacerlo aún más pequeño arrastrando los controladores con el cursor.

Hay una ventana de propiedades en la esquina inferior izquierda de la pantalla. Como el foco está directamente en el formulario en sí, este contiene todas las propiedades del formulario específicas de ese formulario en excel.

Las propiedades que ve actualmente solo se aplican al formulario de excel,en sí. La propiedad ‘Nombre’ es el nombre utilizado para definir su objeto dentro del código VBA. Es posible que desee utilizar algo más significativo para el nombre del objeto, de modo que cuando esté revisando su código, sea obvio qué forma se está utilizando.

Agregar controles de formulario en excel

Notará que cuando hace clic en el formulario en excel, aparece una ventana emergente de caja de herramientas. Si hace clic en cualquier otro lugar, por ejemplo, el panel de propiedades, desaparecerá, pero volverá a aparecer cuando haga clic en el formulario.

La caja de herramientas proporciona la mecánica real del diseño del formulario. Esto le permite agregar los controles de formulario excel normales de Windows con los que los usuarios están familiarizados en su formulario.

 

controles formulario vba

Notarás que en el formulario de excel hay una red de puntos. Este es un ‘snapgrid’ para que cuando agregue un control al formulario, alineará automáticamente la posición con las filas y columnas de puntos. Esto ayuda enormemente a alinear sus controles para que no tenga una apariencia irregular de los controles.

Si hace clic en un control y luego decide no usarlo, al hacer clic en el icono ‘Flecha’ en la esquina superior izquierda de la caja de herramientas, el cursor volverá a la normalidad.

Puede agregar controles adicionales a la caja de herramientas mediante Herramientas | Controles adicionales en el menú VBE. Hay un número considerable de estos disponibles, pero dependiendo de sus versiones de Windows y Excel, no siempre funcionan, por lo que a menudo se requiere algo de experimentación.

 

controles formulario vba

Boton cerrar formulario en excel

Un botón de Comando es fácil de agregar al formulario en excel. Haga clic en el icono del botón de comando en la caja de herramientas. Este es el segundo icono de la izquierda en la fila inferior de iconos. Vea la imagen de arriba. Tiene las letras ‘ab’.

Puede mantener presionado el botón del mouse y arrastrar el control a su formulario de excel, o puede mover el cursor al formulario, donde cambiará a un cursor en forma de ‘cruz’ y puede colocar y cambiar el tamaño de su botón

 

boton de comando vba

El botón tendrá texto predeterminado como título, pero querrá cambiarlo según sus propios requisitos. Puede hacer clic en el texto dentro del botón (‘CommandButton1’) y esto le permitirá editar el título directamente.

También puede cambiarlo en la ventana de propiedades (esquina inferior izquierda de la pantalla). Verá una propiedad llamada ‘Título’ y puede editar el valor para esto. Cambiar esto a ‘Salir’

Puede ver su formulario en Excel haciendo clic en el triángulo verde en la barra de herramientas de VBE o presionando F5

ejecutar formulario vba

 

Puede llamar a su formulario en excel desde el código VBA dentro de un módulo utilizando el método ‘Mostrar’

Sub ShowForm ()
UserForm1.Show
End Sub

Para agregar código VBA, haga doble clic en el botón en el formulario

Esto lo llevará a la ventana de código VBA normal y mostrará el evento predeterminado de clic.

Utiliza el método ‘Ocultar’ para cerrar el formulario y también puede agregar cualquier otro código, como un cuadro de mensaje para confirmar al usuario lo que ha sucedido.

ocultar formulario vba

 

Cuando ejecuta su formulario en excel, ahora el botón realmente hace algo. El formulario desaparece y se muestra un cuadro de mensaje que confirma que el formulario está cerrado

Agregar un control de etiqueta a un formulario de excel

Los controles de etiqueta son para indicarle al usuario qué tipo de datos necesita ingresar a un control en el formulario, por ejemplo, cuadro de texto, menú desplegable, etc. Una etiqueta no tiene bordes por defecto, pero estos se pueden agregar a través de la ventana de propiedades si necesario.

Como control, son de solo lectura para el usuario y son simplemente una forma de poner texto en el formulario, ya sea un encabezado en negrita o una instrucción de qué ingresar o elegir.

Para agregar una etiqueta, haga clic en el icono ‘A’ en la caja de herramientas (fila superior, segunda desde la izquierda) y haga doble clic en él o mueva el cursor al formulario y seleccione la posición y el tamaño.

etiqueta de formulario vba

Usando la propiedad ‘Título’ en la ventana de propiedades, o haciendo clic en el control de etiqueta, puede ingresar el texto para el control de etiqueta.

Usando la ventana de propiedades, puede cambiar la apariencia del control de etiqueta, con diferentes colores, fuentes, estilo de fondo, por ejemplo, si se superpone a una imagen y desea que sea transparente

No es necesario crear ningún código para un control de etiquetas. El propósito principal es agregar texto al formulario para que el usuario pueda ver cómo funcionan todos los demás controles

Agregar un control de texto al formulario en excel

Se utiliza un control de texto para permitir al usuario ingresar texto, por ejemplo, ingresar un nombre o comentarios

El control de texto se agrega desde la caja de herramientas haciendo clic en el icono de control de texto (fila superior, tercero desde la izquierda) y haciendo doble clic o arrastrando el control a su posición en su formulario.

El control de texto a menudo se confunde con el control de etiqueta, pero el control de texto es el que debe ingresar el usuario

texto al formulario vba

 

El texto ‘Ingrese su nombre’ es un control de etiqueta, como se describió anteriormente, y ahora tenemos un cuadro de texto blanco listo para que el usuario escriba algo en

Una propiedad muy importante para un cuadro de texto es la propiedad ‘MultiLine’. Si desea que el usuario ingrese una gran cantidad de texto en el control de texto, por ejemplo, comentarios, entonces la propiedad ‘MultiLine’ debe establecerse en True.

Es un valor predeterminado de Falso, lo que significa que, por muy grande que sea su cuadro de texto, el texto ingresado permanecerá en una línea continua y se desplazará fuera del cuadro de texto. No se envolverá dentro de la caja.

Utiliza el evento ‘Salir’. Esto se activa cuando el usuario mueve el foco a otro control en el formulario, lo que significa que el usuario ya no ingresa datos.

Private Sub TextBox1_Salir (ByVal Cancelar como MSForms.ReturnBoolean)
Si IsNull (TextBox1.Value) o Len (TextBox1.Value) <4 Entonces
    MsgBox "El nombre no es válido", vbCritical
    TextBox1.SetFocus
Terminara si
End Sub

Cuando el usuario hace clic en otro control en el formulariode excel, este código prueba un valor nulo en el cuadro de texto o menos de 4 caracteres. Si la prueba es verdadera, aparece un cuadro de mensaje con un icono crítico para informar al usuario que el nombre no es válido y el foco se mueve de nuevo al cuadro de texto ofensivo para que el usuario lo corrija.

Tenga en cuenta que incluso si el usuario hace clic en el botón Salir, el evento de salida del cuadro de texto se realizará primero, por lo que esto evita que el usuario salga sin corregir la entrada.

Guardar su solicitud y formularios de excel

Cuando guarda su libro de Excel que contiene sus formularios, todos los formularios en excel y su código VBA también se guardan. Sin embargo, se perderán los valores que retengan los formularios mientras se muestran.

Es importante escribir código para que cuando el usuario salga del libro de trabajo o del formulario, los valores se vuelvan a escribir en las celdas del libro de trabajo y se conserven.

Formas modales y no modales 

El formulario en sí tiene una propiedad ‘Mostrar modal’. Esto se establece de forma predeterminada en Verdadero, pero se puede cambiar a Falso (no modal)

 

caja de propiedades vba

Si un formulario es modal, significa que no se puede acceder a ninguna de las funciones de Excel mientras se muestra el formulario. Esto incluye su código en la ventana VBE. Puede ver el código, pero el cursor y el teclado están desactivados.

En un formulario no modal, puede acceder a toda la funcionalidad de Excel, incluida la ventana VBE, mientras se muestra el formulario.

Cerrar un formulario de excel

No importa lo bien que escriba su código para obligar al usuario a seguir una ruta determinada, pueden eludirlo fácilmente haciendo clic en la X ‘Cerrar’ en la esquina superior derecha del formulario

Puede evitar que esto suceda modificando el evento ‘QueryClose’ del formulario

Private Sub UserForm_QueryClose (Cancelar como entero, CloseMode como entero)
Cancelar = Verdadero
MsgBox "Esta acción está deshabilitada"
End Sub

El evento ‘QueryClose’ se activa cuando el usuario hace clic en la X ‘Cerrar’ del formulario. Este código cancela la acción, por lo que el usuario se ve obligado a usar su botón ‘Salir’ y el código que tiene detrás.

Habilitación y deshabilitación de controles 

Todos los controles de su formulario en excel tienen una propiedad llamada ‘Habilitado’ que se establece en Verdadero o Falso. Si es Falso, entonces el control está atenuado. Se puede ver pero no se puede utilizar.

También hay una propiedad llamada ‘Visible’ que nuevamente se establece en Verdadero o Falso.

Puede escribir código para inutilizar cierto control o para hacerlo totalmente invisible para el usuario. Usando una declaración ‘Si’, puede elegir las circunstancias en las que necesita hacer esto

Por ejemplo, puede deshabilitar el botón ‘Salir’ inicialmente, hasta que el usuario haya ingresado un valor en el TextBox1 (nombre)

Sub UserForm_Initialize () privado
CommandButton1.Enabled = Falso
End Sub
Sub TextBox1_Change privado ()
Si Len (TextBox1.Value)> 0 Entonces
    CommandButton1.Enabled = Verdadero
Más
    CommandButton1.Enabled = Falso
Terminara si
End Sub

Este código usa el evento ‘Inicializar’ del formulario para deshabilitar el botón de salida (Botón de comando 1) cuando el formulario aparece por primera vez y luego usa el evento ‘Cambiar’ en TextBox1 (nombre) para habilitar el botón Salir si se ha escrito o deshabilitado algo si el cuadro está en blanco.

El evento ‘Cambiar’ se activa cada vez que se escribe un carácter nuevo o se elimina del cuadro de texto. Si el usuario intenta ingresar texto para habilitar el botón y luego borra todo el texto, el botón se deshabilitará instantáneamente

formulario vba

Deja un comentario