Creando Un UseForm

16
Programar en Excel Controles de un Userform Como veíamos anteriormente, tenemos una serie de controles para agregar al Userform, que los podíamos visualizar desde el menú Ver => Cuadro de Herramientas. Ahora explicaremos brevemente la utilidad de cada control. Los controles se explican en el mismo orden que aparecen en el Cuadro de Herramientas y en la figura anterior (de izquierda a derecha y de arriba hacia abajo). Seleccionar objetos: Sirve para seleccionar controles que hayamos insertado en el UserForm. Etiqueta (Label): Sirve para poner un titulo o un texto. Ejemplo: Podemos poner un texto del tipo ” Complete las opciones a continuación” y ubicarlo en cualquier sitio del UserForm. También podemos agregar Títulos o descripciones al resto de comandos que agreguemos al UserForm. Cuadro de Texto (Textbox): Sirve para que un usuario introduzca Datos. Ejemplo: Querremos que el usuario introduzca una Fecha o un Nombre ( Que luego llevaremos a alguna Celda de Excel).

description

Crear un Useform con VBA y llamarlo desde excel

Transcript of Creando Un UseForm

Page 1: Creando Un UseForm

Programar en Excel – Controles de un Userform

Como veíamos anteriormente, tenemos una serie de controles para agregar al Userform, que

los podíamos visualizar desde el menú Ver => Cuadro de Herramientas.

Ahora explicaremos brevemente la utilidad de cada control. Los controles se explican en el

mismo orden que aparecen en el Cuadro de Herramientas y en la figura anterior (de

izquierda a derecha y de arriba hacia abajo).

Seleccionar objetos:

Sirve para seleccionar controles que hayamos insertado en el UserForm.

Etiqueta (Label):

Sirve para poner un titulo o un texto.

Ejemplo: Podemos poner un texto del tipo ” Complete las opciones a continuación” y

ubicarlo en cualquier sitio del UserForm. También podemos agregar Títulos o

descripciones al resto de comandos que agreguemos al UserForm.

Cuadro de Texto (Textbox):

Sirve para que un usuario introduzca Datos.

Ejemplo: Querremos que el usuario introduzca una Fecha o un Nombre ( Que luego

llevaremos a alguna Celda de Excel).

Page 2: Creando Un UseForm

Cuadro Combinado (ComboBox):

Sirve para que un usuario elija una opción de una Lista. Ejemplo: Creamos una Lista con

los meses de Enero a Diciembre para que el usuario elija uno de ellos.

Cuadro de Lista ( ListBox):

Sirve para que un usuario rellene o elija varias opciones de una lista. Ejemplo: creamos una

lista con Regiones o Ciudades y el usuario deberá elegir una o varias de ellas.

Casilla ( CheckBox):

Sirve para que un usuario active una determinada función. Ejemplo: podemos hacer que al

cerrar el UserForm se imprima un reporte solo si la casilla de selección esta tildada .

Botón de Opciones ( OptionButton):

Sirve para que un usuario seleccione una opcion determinada entre varias posibilidades.

Ejemplo: querremos que el usuario indique, si es del sexo femenino o masculino. De todas

las opciones solo se puede seleccionar una de ellas.

Botón de Alternar ( toggleButton):

Sirve para activar o desactivar alguna funcionalidad. Este botón adopta el modo

“Encendido”/”Apagado”. Ejemplo: querremos que el usuario defina su idioma, en modo

encendido español y en modo apagado ingles.

Marco ( Frame):

Page 3: Creando Un UseForm

Sirve para agrupar elementos de un UserForm ( los elementos se deben ubicar dentro del

Frame ( Marco). Ejemplo: Tenemos Varios Grupos de OptionButton y para distinguirlo lo

agrupamos con un frame. Si tenemos un grupo de opciones tipo Masculino/Femenino, los

agrupamos dentro de un frame (marco). Si luego tenemos otro grupo de opciones del tipo

Mayor de Edad/Menor de Edad los agrupamos dentro de otro frame (marco).

Botón de Comando (CommandButton):

Es un simple botón que nos permite ejecutar acciones. Ejemplo: Un boton de Ayuda que

ejecuta otro UserForm con ayuda para el usuario.

Barra de Tabulaciones ( TabSTrip):

En un Mismo UserForm se puede crear distintas secciones. Ejemplo: Un UserForm con

cuatro Secciones: Norte, Sur, este y oeste. Dentro de cada sección podemos ubicar

distintos controles.

Pagina Multiple (Multipage):

En un mismo formulario se puede crear distintas paginas. Ejemplo: Un UserForm con 2

paginas: Nicaragua y el resto del Mundo. Dentro de cada pagina podemos ubicar distintos

controles o distintas secciones.

Barra de Desplazamiento ( ScrollBar):

Si tenemos una lista con muchos elementos el ScrollBar te permite navegarlos. Ejemplo:

Tenemos una lista con 150 paises. Con el ScrollBar podemos subir y bajar por la lista de

los mismos utilizando las flechas de desplazamiento.

Boton de Numero ( SpinButton):

Page 4: Creando Un UseForm

Permite Aumentar o Disminuir Valores. Ejemplo: Tenemos una lista con tipos de interés y

querremos que sean incrementadas o disminuidos en cantidades predetermindas desde el

Botón de Numero.

Imagen (Image):

Permite introducir imágenes en el UserForm. Ejemplo: Querremos introducir una fotografía

como fondo del userform para darle un aspecto mas profesional.

RefEdit:

Permite hacer referencia a una Celda de Excel. Ejemplo: querremos que el usuario

seleccione un dato que previamente fue introducido en una celda de Excel.

Haciendo doble clic en cada control se abrira una ventana donde podremos escribir y

asociarle una macro. En el tema siguiente vamos a ver como crear un Formulario

(UserForm) paso a paso.

Programar en Excel - Creando un UserForm paso a

paso (Continuación).

Muy bien, hoy continuamos con la creación del Formulario (UserForm), pero antes, me

pregunto si ya viste el tema anterior? Si todavía no lo has visto has clic aquí y lee el tema

anterior. Una vez que termines de leer y aplicar los pasos, regresa nuevamente aquí y

continua.

Continuamos entonces:

4. Agregamos un Cuadro de Texto

Para permitir que el usuario ingrese datos en el Userform agregamos un control TextBox (

Cuadro de Texto), desde el Cuadro de Herramientas.

4.1 Hacemos clic en el control de TextBox y luego hacemos clic en el Userform, en la parte donde

queramos ubicarlo.

Page 5: Creando Un UseForm

4.2 Con el nuevo TextBox seleccionado hacemos doble clic en la Ventana de Propiedades,

propiedad (Name), tipeamos la palabra UFNombre y luego enter (este es el nombre que le

asignamos al objeto para luego referirnos a él desde las macros).

4.3 Hacemos clic en una parte vacía del Userform, para volver a seleccionar todo el Userform.

5. Agregamos un Texto

Para ayudar al usuario a ingresar sus datos, debemos indicarle que es lo que debe introducir

en el Cuadro de Texto del Paso anterior. Podemos agregar una etiqueta de texto que

describa la información que se debe introducir.

Page 6: Creando Un UseForm

5.1 En el Cuadro de Herramientas hacemos clic en el botón Label (Etiqueta).

5.2 En el UserForm hacemos clic a la Izquierda del Cuadro de texto, para agregar el cuadro de texto.

5.3 Si fuera necesario podemos cambiar el tamaño de la etiqueta de texto o del cuadro de texto para que

no se superponga. se puede hacer clic en sus bordes (Pequeños cuadritos) y arrastrar para cambiar su

tamaño.

5.4 Seleccionamos la nueva etiqueta , hacemos doble clic en la propiedad Caption de la ventana de

propiedades, tipeamos Nombre y pulsamos enter.

Page 7: Creando Un UseForm

5.5 Hacemos clic en alguna parte vacía del Userform para seleccionarlo y mostrar el cuadro de

herramientas.

6. Agregamos los Cuadros de Texto restantes

Agregamos los cuadros de texto y las etiquetas restantes (ya lo hicimos para el nombre así

que repetimos para

Edad y Fecha de Nacimiento).

Repetimos los pasos 4 y 5 y agregamos:

* 1 TextBox cuyo (Name) sea UFEdad, con una etiqueta de texto (Label) Edad

* 1 TextBox cuyo (Name) sea UFFecha, con una etiqueta de texto (Label) Fecha Nac.

Es muy importante que no olvides asignar bien los nombres (Name) a los Textbox, si no la

macro dará error.

Puedes revisar los pasos 4 y 5 para recordar como hacerlo.

Si los textbox no quedan alineados se pueden alinear de la siguiente forma:

1. Clic en el primer TextBox

2. Manteniendo pulsada la tecla MAYUS, selecciona los otros TextBox

3. Vamos al menú Formato > Alinear > Izquierda

4. Hacemos clic en alguna parte vacía del Userform para seleccionarlo y mostrar el cuadro

de herramientas.

7. Agregamos los Botones

Page 8: Creando Un UseForm

Para permitir que el usuario ejecute una acción, se pueden agregar botones de comando o

CommandButons. Nuestro Userform tendrá un botón para Agregar los datos a la tabla

Excel y otro botón para Cerrar el Userform.

7.1 En el Cuadro de Herramientas hacemos clic en CommandButton ( Boton de Comando).

7.2 En el Userform hacemos clic en la parte inferior izquierda para agregar el botón.

7.3 Con el nuevo botón seleccionado hacemos doble clic en la propiedad (Name) de la

Ventana de Propiedades, tipeamos UFAgregar y luego enter.

7.4 Con el nuevo botón seleccionado hacemos doble clic en su propiedad Caption en la

Ventana de Propiedades, tipeamos Agregar y luego enter.

7.5 Hacemos clic en alguna parte vacía del Userform para seleccionarlo y mostrar el

Cuadro de Herramientas.

7.6 Repetimos los pasos anteriores para agregar otro CommandButton llamado UFCerrar y

nombre Cerrar.

7.8 Si fuese necesario podemos reubicar los botones dentro del Userform.

Es muy importante que no olvides asignar bien los nombres (Name) a los

CommandButtons, si no la macro dará error. Esto se explica en el paso 7.3 y luego deberás

repetirlo para el otro botón, tal cual se indica en el paso 7.6.

Muy bien, ya hemos creado el Formulario ahora vamos a agregar el codigo para los botones

Agregar y Cerar, pero esto lo haremos en el post de mañana.

Page 9: Creando Un UseForm

Programar en Excel - Códigos para programar el

Boton "Agregar".

Vamos a comenzar con el tema de hoy, pero antes te invito a que repases el tema anterior

pulsando clic aquí. Si ya lo leiste y aplicaste todos los pasos del tema anterior, entonces

continua con este tema.

Hoy vamos a escribir los códigos correspondiente al botón Agregar del Formulario

(UserForm). Comenzamos:

Agregamos el código al botón Agregar

Seleccionamos el botón Agregar

Desde el menú superior elegimos la opción Ver > Código. Esto abrirá una ventana donde

podremos escribir código macro para dicho objeto.

Donde titila el cursor escribimos lo siguiente:

Page 10: Creando Un UseForm

Private Sub UFAgregar_Click()

‘definimos las variables

Dim iFila As Long

Dim ws As Worksheet

Set ws = Worksheets(1)

‘ Encuentra la siguiente fila vacía

iFila = ws.Cells(Rows.Count, 1) .End(xlUp).Offset(1, 0).Row

‘ Verifica que se ingrese un nombre

If Trim(Me.UFNombre.Value) = “” Then

Me.UFNombre.SetFocus

MsgBox “Debe ingresar un nombre”

Exit Sub

End If

‘ Copia los datos a la tabla Excel

ws.Cells(iFila, 1).Value = Me.UFNombre.Value

ws.Cells(iFila, 2).Value = Me.UFEdad.Value

ws.Cells(iFila, 3).Value = Me.UFFecha.Value

‘ Limpia el formulario

Me.UFNombre.Value = “”

Me.UFEdad.Value = “”

Me.UFFecha.Value = “”

Me.UFNombre.SetFocus

End Sub

En el menú superior elegimos Ver > Objeto para regresar al Userform.

Page 11: Creando Un UseForm

No te preocupes si no comprendes el código. Hay muchos objetos, propiedades y métodos

nuevos. Todos ellos se explican mejor en los siguientes temas.

En el próximo tema, vamos a agregar el código correspondiente para el botón Cerrar, tal a

como lo hicimos hoy con el código Agregar.

No olvides dejarme tu comentario, me gustaria saber si te funciono los códigos, si no lo

lograste, solo déjame un comentario o contactame por el chat, para que tratamos de hacer

funcionar juntos los códigos del botón agreg

Programar en Excel - Códigos para Programar el

Botón Cerrar

En el tema anterior escribimos los códigos para el botón Agregar, lograste completar este

paso? Si todavía no has visto el tema anterior o no has completado los pasos, por favor haz

clic aquí y aplica los pasos del tema anterior. Una vez termines, regresa nuevamente aquí y

continua con el tema de hoy.

Para hoy vamos a escribir los códigos del botón Cerrar, para eso comenzamos de la

siguiente forma:

Agregamos el código al botón Cerrar

Seleccionamos el botón Cerrar

En el menú superior elegimos Ver > Código

Page 12: Creando Un UseForm

Donde titila el cursor escribimos el siguiente código:

Private Sub UFCerrar_Click()

Unload Me

End Sub

En el menú superior elegimos Ver > Objeto para regresar al Userform.

Permitir al usuario cerrar el Userform con la tecla ESC

Seleccionamos el botón Cerrar

En la Ventana Propiedades cambiamos la propiedad Cancel a True.

Page 13: Creando Un UseForm

Probar el Userform

Ya podemos probar el funcionamiento del Userform !

1. Hacemos clic en alguna parte vacía del Userform para seleccionarlo y mostrar el cuadro

de herramientas.

2. En el menú superior elegimos Ejecutar => Ejecutar Sub/Userform

3. Ahora podemos comenzar a completar el primer cuadro del Userform y escribimos un

nombre, por ej. Juan.

4. Presionamos la tecla TAB para movernos al siguiente cuadro de texto.

5. Cuando hemos completado todos los cuadros de texto, hacemos clic en el botón de

Agregar y los datos se

completarán en la Tabla de Excel.

6. Podemos repetir los pasos anteriores e ir agregando distintos nombres con sus

respectivos datos.

7. Hacemos clic en Cerrar para volver al editor de macros.

La tecla TAB sirve para moverse entre los distintos controles de un Userform. Si al

presionar TAB el orden del movimiento no es el correcto, es posible cambiarlo:

1. Clic derecho en una parte vacía del Userform

2. Elegimos Orden de Tabulación.

3. Seleccionamos el control de la lista y con los botones de Mover Arriba o Mover Abajo

ajustamos el orden.

Page 14: Creando Un UseForm

4. Hacemos clic en OK

Muy bien, con esto terminamos con el tema de hoy, para mañana vamos a a ver como

llamar este Formulario desde excel. Atento al tema de mañana.

Programar en Excel – Llamar un

Formulario desde excel

Programar en Excel - Como llamar un Formulario

Desde Excel.

En el tema anterior concluimos con el diseño de un Formulario en VBA (Visual Basic para

Aplicaciones) y hoy vamos a llamar a este formulario desde excel, pero antes, tengo una

pregunta para ti: Ya viste el tema anterior? Si todavía no lo has visto haz clic aquí. Una vez

termines de leer y aplicar los pasos, regresa nuevamente aquí y continua con el tema de

hoy.

A continuación vamos a ver los pasos para llamar a un Formulario creado en VBA desde

excel, Sigue los siguiente pasos:

Programar en Excel – Asignar un botón para ejecutar el Userform

Podemos agregar un botón para que un usuario pueda ejecutar el Userform desde la hoja

Excel.

1. Activamos Excel, libro Datos.xls, Hoja 1

2. Nos ubicamos en la Pestaña Desarrollador = > Sección Controles = > Desde el Comando

Insertar, seleccionamos con un clic botón de control de Formulario y lo dibujamos dentro

de la Hoja.

Page 15: Creando Un UseForm

3. Una vez Dibujado el control, al soltar el mouse se presenta una nueva ventana.

4. Hacemos clic en el botón Nuevo

5. Donde titila el cursor escribimos: DatosUF.Show

Page 16: Creando Un UseForm

6. Cada vez que hagamos clic en la figura se ejecutará el Userform.

7. Vamos a cambiar el Nombre del Boton, para modificarlo vamos a ubicarnos encima del

botón y pulsamos clic derecho del mouse, se despliega varias opciones y seleccionamos con

un clic Modificar Texto. Borramos el texto y escribimos Formulario Datos.

Ahora vamos a probar que tal funciona el botón, para eso he grabado un video bien cortico

de 26 segundo que te mostrara como quedo el boton y su funcionalidad:

Muy bien, con esto hemos terminado con el tema de formularios, para el tema siguiente

vamos a ver como ejecutar una macro desde otra macro.