¿Qué es un formulario en Excel?

14
¿Qué es un formulario en Excel? Los formularios en VBA o formularios en Excel son conocidos como Userforms, sirven para ejecutar operaciones como el registro, actualización, eliminación o procesamiento de los datos existentes en Excel, o como una interfaz de usuario desde la que se pueden ejecutar macros previamente existentes. Estos formularios en Excel pueden ser empleados desde cualquier hoja, por medio de algún botón que coloquemos, o desde la alguna Macro existente en Excel, para lo cual deberemos colocar la invocación Cuando se desea ejecutar un macro, al ingresar la opción "Macros" desde la ficha de programador, se muestra una relación de macros que pueden ser empleadas, desde dicha pantalla no existe más interacción relevante que solo seleccionar cuál de las macros emplear, en cambio desde un Userform se pueden crear objetos como cajas de texto, botones de opción, listas, etc, con las cuales se puede interactuar antes de proceder a ejecutar alguna macro. El contenido disponible en un Userform puede ser empleado para interactuar con algún contenido en cualquiera de las hojas que encuentren en nuestro archivo Excel, o solo interactuar entre los datos disponibles desde el mismo Userform. La cantidad de usos que le podemos dar a un Userform es muy diverso, en la siguiente lista encontraremos algunos ejemplos de cómo podemos emplearlos. ¿Cómo crear un formulario en Excel? Para crear un formulario en Excel primero se debe ingresar a la Ficha Programador o Desarrollador, luego de ello seleccionar la opción "Visual Basic", una vez que nos encontremos en esta pantalla, sobre la ventana de Proyecto podemos realizar un Click con el botón derecho y seleccionar "Userform", o ir al menú "Insertar" y luego seleccionar "Userform". Luego se ello aparecerá un formulario en Excel en blanco, desde el cual se podrá añadir los elementos que se consideren necesarios desde el cuadro de herramientas. Si la ventana de proyectos no aparece puede ir al menú "Ver", luego seleccionar "Explorador de Proyectos", o usar CTRL + R. En caso una vez creado el formulario no aparezca el cuadro de herramientas, puede ir al menú "Ver" y luego seleccionar la opción "Cuadro de herramientas". Pasar datos de tabla a Listbox en Excel En el siguiente ejemplo mostraremos como pasar datos de una tabla a un Listbox en un formulario de Vba, para ello tendremos en cuenta los siguientes pasos: 1) Tener la lista que se desea en una hoja de excel (con la estructura como se desea tener en la listbox)

Transcript of ¿Qué es un formulario en Excel?

Page 1: ¿Qué es un formulario en Excel?

¿Qué es un formulario en Excel?

Los formularios en VBA o formularios en Excel son conocidos como Userforms, sirven para ejecutar operaciones como el registro, actualización, eliminación o procesamiento de los datos existentes en Excel, o como una interfaz de usuario desde la que se pueden ejecutar macros previamente existentes. Estos formularios en Excel pueden ser empleados desde cualquier hoja, por medio de algún botón que coloquemos, o desde la alguna Macro existente en Excel, para lo cual deberemos colocar la invocación Cuando se desea ejecutar un macro, al ingresar la opción "Macros" desde la ficha de programador, se muestra una relación de macros que pueden ser empleadas, desde dicha pantalla no existe más interacción relevante que solo seleccionar cuál de las macros emplear, en cambio desde un Userform se pueden crear objetos como cajas de texto, botones de opción, listas, etc, con las cuales se puede interactuar antes de proceder a ejecutar alguna macro. El contenido disponible en un Userform puede ser empleado para interactuar con algún contenido en cualquiera de las hojas que encuentren en nuestro archivo Excel, o solo interactuar entre los datos disponibles desde el mismo Userform. La cantidad de usos que le podemos dar a un Userform es muy diverso, en la siguiente lista encontraremos algunos ejemplos de cómo podemos emplearlos.

¿Cómo crear un formulario en Excel?

Para crear un formulario en Excel primero se debe ingresar a la Ficha Programador o Desarrollador, luego de ello seleccionar la opción "Visual Basic", una vez que nos encontremos en esta pantalla, sobre la ventana de Proyecto podemos realizar un Click con el botón derecho y

seleccionar "Userform", o ir al menú "Insertar" y luego seleccionar "Userform". Luego se ello aparecerá un formulario en Excel en blanco, desde el cual se podrá añadir los elementos que se consideren necesarios desde el cuadro de herramientas.

Si la ventana de proyectos no aparece puede ir al menú "Ver", luego seleccionar "Explorador de Proyectos", o usar CTRL + R. En caso una vez creado el formulario no aparezca el cuadro de herramientas, puede ir al menú "Ver" y luego seleccionar la opción "Cuadro de herramientas".

Pasar datos de tabla a Listbox en Excel

En el siguiente ejemplo mostraremos como pasar datos de una tabla a un Listbox en un formulario de Vba, para ello tendremos en cuenta los siguientes pasos:

1) Tener la lista que se desea en una hoja de excel (con la estructura como se desea tener en la listbox)

Page 2: ¿Qué es un formulario en Excel?

2) Abrir en el Excel el editor de visual Basic, esto se logra presionando alt+f11, o desde la ficha "Desarrollador" (o "Programador"), seleccionar la opción Visual Basic. 3) Elegimos el menú "insertar" y seleccionamos "userform"

4) En el cuadro de herramientas seleccionamos cuadro lista y lo colocamos encima de la ventana del Userform (Lo ajustamos a un tamaño razonable que muestre los datos de nuestra lista en excel).

5) Damos doble click en el formulario(userform) para abrir la ventana de codificación. 6) Cambiamos el evento para esto le damos click al evento Initialize(para que cuando inicie el formulario se cargue los datos de la hoja1) 7) Empezamos la codificación: Private Sub Userform_Initialize() Me.Listbox1.Rowsource= "Hoja3!A2:D30" (esto es para poner elementos de una hoja hacia nuestro listbox ("Me." hace referencia al formulario), se podría omitir el uso del "Me." Me.Listbox1.ColumnCount=4 (con esto ponemos el número de columnas que queremos que se muestren en el listbox) Me.Listbox1.ColumnWidths=" 55;80;80;120″ (Con esto modificamos el ancho de las columnas a medida que nuestro Listbox se vea de una manera ordenada,el 1er valor hace referencia la primera columna ,el 2do a la segunda columna y el 3ro a la tercera columna) Me.Listbox1.ColumnHeads=True (esto hace que la listbox tome los titulos de las cabeceras de la lista en excel y los muestre) End Sub

8) Damos F5 para correr la programación y ver nuestro listbox.

Page 3: ¿Qué es un formulario en Excel?

¿Qué es Image? Image es uno de los controles UserForm. – Puede seleccionar y arrastrar Imagen en el UserForm. – Puede seleccionar y arrastrar Imagen en el UserForm. – El control de imagen incluye una imagen como jpg, jpeg, gif, png, mapa de bits, etc.

A. Cargar una imagen en USERFORM : Ir a la pestaña Desarrollador y luego haga clic en Visual Basic desde el código o presione Alt + F11. 1. Ir a Insertar menú, haga clic en UserForm. Encuentre la captura de pantalla para el mismo.

2.-Arrastre Image_control en Userform desde Toolbox.

3.- Haga clic en las propiedades image_control. 4.- En el lado izquierdo, encuentra 'Imagen' de las propiedades disponibles del control. 5.- En el lado derecho, haz clic en eso y selecciona la imagen de la fuente. 6.- En el lado izquierdo, encuentre 'PictureSizeMode' de las propiedades disponibles del control. 7.-En el lado derecho, seleccione '1 – frmPictureSiseModeStretch' de la lista disponible.

8.-Ahora, puede ver la siguiente salida como se muestra a continuación en la captura de pantalla.

Page 4: ¿Qué es un formulario en Excel?

B. Agregar Dynamic Image_Control en el UserForm usando VBA 1.- Agregar imagen y CommandButton en la forma de usuario desde la caja de herramientas. 2.- Haga clic con el botón derecho en CommandButton, haga clic en Propiedades 3.- Cambie el título CommandButton a 'Create_Image' 4.- Haga doble clic en CommandButton Comandos : With Img .Picture = LoadPicture("C:\Users\mwx504579\Desktop\TAREA 19_Aug_2018\Tema opcional\VETERINARIA.bmp") .PictureSizeMode = fmPictureSizeModeStretch .Left = 50 .Top = 10 End With 5.- Ahora, haga clic en F5 para ejecutar la macro, haga clic en el botón 'Crear_Imagen' para ver el resultado.

6.- Puede ver el Image_control dinámico creado que se muestra en la siguiente captura de pantalla.

Page 5: ¿Qué es un formulario en Excel?

C. Agregar y borrar imagen . 1. Agregar en siguiente USERFORM1 con dos botones .

2. Respecto al botón Agregar imagen se tiene los siguientes comando : Private Sub CommandButton1_Click() Set lblBtn = Me.Controls.Add("Forms.Image.1") With lblBtn .Top = 20 .Left = 40 .Name = "lblNew1" .Picture = LoadPicture("C:\Users\mwx504579\Desktop\TAREA19_Aug_2018\Tema opcional\CONEJO.BMP") End With MsgBox "Nueva Imagen agregada" End Sub

3. Respecto al botón Eliminar imagen se tiene los siguientes comando : Private Sub CommandButton2_Click() Me.Controls.Remove ("lblNew1") MsgBox "Imagen borrada" End Sub Al ejecutar los botones se agrega o elimina una imagen en el USERFORM creado.

Page 6: ¿Qué es un formulario en Excel?

OPTIONBUTTONS EN UN FORMULARIO

¿Qué son los OPTIONBUTTONS en un formulario? Los optionbuttos tienden a trabajar en grupo. Cuando uno de ellos se selecciona los otros se deseleccionan, por lo tanto, se tiene que tener 2 opciones como mínimo para que este sea válido. Los optionbuttons son utilizados para seleccionar solo una opción dentro de diferentes alternativas, en comparación con los checkbox. 1) Es necesario ir al formulario de VBA y localizar las propiedades, en este caso el GroupName el cual se le tendrá que asignar un nombre.

2) Insertar los optionbuttons y se les cambia name y caption según las opciones que se requieran. En este caso fueron "Mayor de edad" y "Menor de edad", también se añadirá un command Button.

3. Proceder con la programación: 3.1. Se empieza con la declaración de las variables Mayor As String Menor As String Mayor = Optmayo.value Menor = Optmenor.value 3.2. En este caso queremos que aparezca un message box que diga "Has apretado la opción…" según la opción elegida: If mayor= True then MsgBox “ Has seleccionado la opción mayor” Else MsgBox “ Has seleccionado la opción menor” End If

Page 7: ¿Qué es un formulario en Excel?

3.3 Para solucionar un inconveniente, el cual es al no seleccionar ninguna opción, se debe de realizar una modificación: If mayor= True then MsgBox “ Has seleccionado la opción mayor” ElseIf menor = True then MsgBox “ Has seleccionado la opción menor” Else MsgBox “No has seleccionado ninguna opción” End If

Ahora se presentará un ejemplo, en este caso vamos a tener 3 países europeos y 3 países asiáticos, y 2 command buttons en los cuales dirán Europa y Asia, respectivamente. – Para realizar este ejemplo se usará ella siguiente codificación: Private Sub CommandButton1_Click() If FRANCIA.Value = True Then ( Si la opción de Francia se encuentra marcada entonces se mostrará… ) MsgBox "Principal atracción la Torre Eiffel" End If If ITALIA.Value = True Then MsgBox "Visitar el Coliseo romano" End If If REPUBLICACHECA.Value = True Then MsgBox " Observar el Reloj Astronómico" End If 'Si no se selecciona ninguna casilla entonces deberá aparece "Seleccione Opción" If FRANCIA.Value = False And ITALIA.Value = False And REPUBLICACHECA.Value = False Then MsgBox " Seleccione opción" End If End Sub Cabe recalcar que aquí se están mostrando las principales atracciones turísticas de cada país.

– En el commandButton 2 se configura para los países asiáticos, el cual nos mostrarán los nombres de los presidentes actuales. Private Sub CommandButton2_Click() If FILIPINAS.Value = True Then MsgBox " Presidente: Rodrigo Duterte" End If If SINGAPUR.Value = True Then MsgBox " Presidente: Halimah Yacob" End If If COREA.Value = True Then MsgBox " Presidente: Moon Jae-In" End If 'Si no se selecciona ninguna casilla entonces deberá aparece "Seleccione Opción" If FILIPINAS.Value = False And SINGAPUR.Value = False And COREA.Value = False Then MsgBox " Seleccione opción" End If

Page 8: ¿Qué es un formulario en Excel?

Fechas en Formulario con VBA

¿Cómo colocar calendarios en Userform? 1. Ir a desarrollador y abrir la pestaña de visual Basic. 2. Agregar un Userform, este debe aparecer con un cuadro de herramientas. Como se puede notar no hay ningún botón que agregue calendario. Por lo que insertaremos un botón que nos permita hacerlo. 3. En la ventana de herramientas hacer click derecho y click en controles adicionales

4. Aparecerá una lista con varios tipos de controles, en esta lista se busca el control Microsoft Date and Time Picker Control

5. Hacer click en en Time Picker Control y clik en aceptar 6. En la barra de herramientas se habrá agregado un nuevo control. Arrastrar ese control a la ventano de Userform

Page 9: ¿Qué es un formulario en Excel?

7. Para cambiar la fecha y colocar una hora, Ir a la barra de propiedades y buscar la opción format 8. Al hacer click en la opción Format aparecerán 4 opciones

9. Hacer click en dtp Time, pare que el recuadro sea de hora. Se obtendrá lo siguiente.

Esta opción es muy útil ya que nos permite crear macros con los cuales podamos hacer reservaciones de algún tipo de evento.

Page 10: ¿Qué es un formulario en Excel?

Mensaje de Bienvenida con VBA

¿Qué es un formulario de apertura o mensaje de bienvenida? Un formulario de apertura puede servir como guía para el visitante del documento. De esta forma se puede dar una bienvenida y con ayuda del título más una imagen se podrá saber sobre el contenido antes de leerlo.

¿Cómo hacer un formulario de apertura con macros? En el siguiente ejercicio se realizará un formulario de bienvenida al documento de excel, dónde se indican las distintas carreras que tiene la universidad. a) CREAR EL FORMULARIO Para crear el formulario, debemos ir al menú "programador", luego ingresamos a Visual Basic. En la parte izquierda se hace click derecho y en "insertar", se escoge la opción "UserForm", entonces se dibuja el tamaño del formulario que se desea observar al abrir el documento. b) INSERTAR IMAGEN EN EL FORMULARIO Se debe ir a la barra de herramientas y seleccionar la opcion "imagen", donde insertaremos la imagen que deseamos mostrar a través de propiedades – "picture". Ésta debió ser descargada y guardada en el sistema. Se puede cambiar el nombre y borde.

También se debe insertar un botón de comando "Aceptar" para hacer que la ventana desaparezca una vez vista.

c) CREACIÓN DE MACRO Se selecciona el workbook y se coloca el siguiente código para que el formulario aparezca al abrir el documento:

Finalmente, para que una vez observada la bienvenida se oculte el formulario, insertar el siguiente código para el botón de comando "Aceptar":

Page 11: ¿Qué es un formulario en Excel?

Llenar Listbox con VBA

¿Qué es un Listbox? Un cuadro de lista es un elemento de control gráfico que le permite al usuario seleccionar uno o más elementos de una lista contenida dentro de un cuadro de texto estático de varias líneas.

¿Cómo hacer un Listbox en un Userform? En el siguiente ejemplo mostraremos como pasar una lista de una hoja de excel hacia un Listbox en un formulario de Vba. 1)Tener la lista que se desea en una hoja de excel (con la estructura como se desea tener en la listbox) 2)Abrir en el excel el visual Basic (alt+f11) 3)Damos clic en insertar y seleccionamos userform 4)En el cuadro de herramientas seleccionamos cuadro lista y lo colocamos encima de la ventana del Userform(Lo ajustamos a un tamaño razonable que muestre los datos de nuestra lista en excel)

5)Damos doble click en el formulario(userform) para abrir la ventana de codificación. 6)Cambiamos el evento para esto le damos click al evento Initialize(para que cuando inicie el formulario se cargue los datos de la hoja1)

7)Empezamos la codificación: Private Sub Userform_Initialize() Me.Listbox1.Rowsource= "Hoja1!A2:C11" '(esto es para poner elementos de una hoja hacia nuestro listbox ("Me." hace referencia a nuestra hoja1)en este caso la hoja tiene como nombre Hoja1(Se podría omitir el uso del "Me.") Me.Listbox1.ColumnCount=3 '(con esto ponemos el número de columnas que queremos que se muestren en el listbox)

Me.Listbox1.ColumnWidths=" 25;100;40″ '(Con esto modificamos el ancho de las columnas a medida que nuestro Listbox se vea de una manera ordenada,el 1er valor hace referencia la primera columna ,el 2do a la segunda columna y el 3ro a la tercera columna) Me.Listbox1.ColumnHeads=True '(esto hace que la listbox tome los titulos de las cabeceras de la lista en excel y los muestre)

Page 12: ¿Qué es un formulario en Excel?

End Sub 8)Damos F5 para correr la programación y ver nuestro listbox

Simular usuario y Password en VBA

En el siguiente artículo usted aprenderá a realizar un login básico en un formulario usando VBA. Este consiste en que cuando el usuario quiera acceder al libro Excel, este inmediatamente muestre una ventana de Login.

Además, esta venta que se abre para solicitar las credenciales, impide que el libro se muestre en su totalidad hasta que ingrese las credenciales correctas, estas son: Usuario: admin Contraseña: 12345 Así mismo, usted puede cambiar las credenciales desde el código del formulario. 'Validación de la credenciales correctas If Trim (txtUser.Text) = "admin" And Trim (textContra.Text) = "12345" Then MsgBox ("Acceso correcto"), vbInformation, "Ok" Application.Visible = True 'Esta línea de código permite mostrar el libro excel End Else MsgBox ("Las credenciales ingresadas son incorrectas, intente de nuevo"), vbExclamation, "Alerta" End if End sub La sintaxis empieza declarando las variables a usar y asignándoles un valor a cada una, en este caso serán User y contraseña. Dim user, contraseña As String user = txtUser.Text contraseña = txtContra.Text

Page 13: ¿Qué es un formulario en Excel?

Luego, se tendrá que validar que los campos de las credenciales este completo, luego se vera la validación de ellas. 'Comprobar que el usuario ingrese las credenciales If Trim(txtUser) = "" Then ' Trim sirve para descartar saltos vacíos en el campo Usuario MsgBox "Ingrese Usuario, intente de nuevo", vbExclamation, "Alerta" 'Mensaje de alerta indicando que el campo

debe ser llenado txtUser.SetFocus 'Ubica el curso en el campo Usuario Exit Sub End If If Trim(txtContra) = "" Then ' Trim sirve para descartar saltos vacíos en el campo Contraseña MsgBox "Ingrese Contraseña", vbExclamation, "Alerta" 'Mensaje de alerta indicando que el campo debe ser llenado txtContra.SetFocus 'Ubica el curso en el campo Contraseña Exit Sub End If Después viene la validación de la credencial correcta. 'Validación de las credenciales correctas If Trim(txtUser.Text) = "admin" And Trim(txtContra.Text) = "12345" Then MsgBox ("Acceso correcto"), vbInformation, "Ok" Application.Visible = True 'Esta línea de código permite mostrar el libro Excel luego de ingresar las credenciales

correctas End Else MsgBox ("Las credenciales ingresadas son incorrectas, intente de nuevo"), vbExclamation, "Alerta" End If End Sub Todo lo de arriba conlleva la programación del botón INGRESAR, ahora para el botón cancelar simplemente colocamos lo siguiente: Private Sub btnCan_Click() Unload.me 'Cierra el formulario en su totalidad. End Sub Finalmente, para que el libro de Excel nos pida las credenciales al inicio se tiene que colocar el siguiente código en ThisWorkbook: Private Sub Workbook_Open() Application.Visible = False 'No permite que el libro se muestre al abrirlo UserForm1.Show 'Muestra el formulario de login como primera ventana End Sub Bonus: Adicionalmente se cambió la manera en la que se muestra los caracteres en el campo CONTRASEÑA, esto se hizo mediante la herramienta PROPIEDADES (Se colocóº el carácter *).

Page 14: ¿Qué es un formulario en Excel?