VERSIÓN DEMO MANUAL DE USERFORMS (y formularios Excel en general) (Para versiones xlsm) por Elsa Matilde Meyer INDICE DE CONTENIDOS En esta versión se incluye el Indice de Contenidos y el desarrollo de uno de sus capítulos a cuyos temas se puede acceder desde el mismo Indice. El manual en su versión completa presenta 150 páginas, con más de un ejemplo en cada tema, imágenes, notas aclaratorias y vínculos a las distintas hojas. Además, con versión completa se acompañan 10 libros Excel con todos los ejemplos que se desarrollan en este manual.
42
Embed
Manual de Formularios Excel (2007-2018)aplicaexcel.galeon.com/Demos/DM_Userforms.pdf · 1. INTRODUCCIÓN Al trabajar con Excel no podemos dejar de mencionar los ‘formularios’.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
VERSIÓN DEMO
MANUAL DE USERFORMS
(y formularios Excel en general)
(Para versiones xlsm)
por Elsa Matilde Meyer
INDICE DE CONTENIDOS
En esta versión se incluye el Indice de Contenidos y el desarrollo de uno de sus capítulos a cuyos temas se puede acceder desde el mismo Indice.
El manual en su versión completa presenta 150 páginas, con más de un ejemplo en cada tema, imágenes,
notas aclaratorias y vínculos a las distintas hojas.
Además, con versión completa se acompañan 10 libros Excel con todos los ejemplos que se desarrollan en este manual.
2. LOS MSGBOX ................................................................................................................................................. 10
2.1. Sintaxis de un MsgBox ........................................................................................................................... 10
2.2. Botones o Buttons en un MsgBox ......................................................................................................... 10
2.3. Ejemplos de MsgBox con su sintaxis ..................................................................................................... 10
2.4. Cómo indicar saltos de línea en un mensaje ......................................................................................... 10
2.6. MsgBox con botones personalizados .................................................................................................... 10
3. LOS INPUTBOX ............................................................................................................................................... 11
3.1. La sintaxis de un InputBox ..................................................................................................................... 11
3.2. Ejemplos de InputBox con su sintaxis .................................................................................................... 11
3.4. Cancelar un InputBox: cómo detectarlo ................................................................................................ 11
3.5. Seleccionar rango desde un InputBox ................................................................................................... 11
4. USO DE CONTROLES ...................................................................................................................................... 12
4.1. Tipos de controles ................................................................................................................................. 12
4.2. Como colocar controles en una hoja Excel ............................................................................................ 13
4.3. Barra ActiveX ......................................................................................................................................... 14
4.4. Barra Formularios .................................................................................................................................. 15
4.5. Cómo reconocer si se trata de un control ‘ActiveX’ o de ‘Formulario’? ............................................... 16
4.6. Conocer rutina asociada a un control.................................................................................................... 17
5. LOS USERFORMS ............................................................................................................................................ 18
5.1. Tipos de Userforms ................................................................................................................................ 18
5.2. Crear un Userform ................................................................................................................................. 18
5.3. Propiedades y eventos .......................................................................................................................... 18
5.4. Dibujar controles en un Userform ......................................................................................................... 18
5.4.1. Asignar iguales propiedades a controles ....................................................................................... 18
5.4.2. Asignar nombre a los controles ..................................................................................................... 18
5.4.3. Asignar orden de entrada a los controles...................................................................................... 18
5.5. Cómo ejecutar o Llamar a un Userform ................................................................................................ 18
5.6. Cómo programar el formulario y sus controles ..................................................................................... 18
5.7. Propiedades del Userform ..................................................................................................................... 18
5.7.1. Lista detallada de Propiedades ...................................................................................................... 18
5.8. Eventos del Userform ............................................................................................................................ 18
5.9. Ubicación del userform en la pantalla. .................................................................................................. 18
5.10. Userform siempre centrado .............................................................................................................. 18
5.11. Inmovilizar un Userform .................................................................................................................... 19
5.12. Ocultar un Userform .......................................................................................................................... 19
5.13. Cerrar un Userform............................................................................................................................ 19
5.14. Acceder al libro desde un Userform abierto ..................................................................................... 19
5.15. Inhabilitar botón de Cerrar ................................................................................................................ 19
5.16. Quitar botón de Cerrar (X) ................................................................................................................. 19
5.17. Agregar botones de Minimizar y Maximizar en un Userform ........................................................... 19
6. EL CONTROL LABEL O ETIQUETA ................................................................................................................... 20
6.1. Características de un control Label ....................................................................................................... 20
6.2. Propiedades y Eventos de un Label ....................................................................................................... 20
6.3. Inicializando un control Label ................................................................................................................ 20
6.4. Uso de Label como contador ................................................................................................................. 20
6.5. Mostrar mensaje al pasar el mouse por el control ............................................................................... 20
6.6. Limpieza de Label .................................................................................................................................. 20
7. El CONTROL TEXTBOX o CUADROS DE TEXTO ............................................................................................... 21
7.1. Caracteristicas de un control TextBox ................................................................................................... 21
7.2. Propiedades y Eventos de un TextBox .................................................................................................. 21
7.3. Inicializando un control Textbox ........................................................................................................... 21
7.4. Textbox con datos de otro Userform .................................................................................................... 21
7.5. Asignando orden o foco a los controles ................................................................................................ 21
7.6. TextBox para contraseñas ..................................................................................................................... 21
7.7. Cómo y cuándo controlar datos de ingreso .......................................................................................... 21
7.7.1. Longitud máxima para un campo .................................................................................................. 21
7.8. Funciones de validación ........................................................................................................................ 21
8.15. Mostrar datos filtrados en un control Combobox o Listbox ............................................................. 24
8.16. Limpieza de Combobox/ListBox ........................................................................................................ 24
9. El objeto FRAME O MARCO ........................................................................................................................... 25
9.1. Caracteristicas de un control Frame ..................................................................................................... 25
9.2. Propiedades y Eventos de un control Frame ......................................................................................... 25
9.3. Agrandar un Frame a medida que se agregan datos ............................................................................. 25
10. El objeto OPTIONBUTTON O BOTONES DE OPCIÓN ................................................................................ 26
10.1. Caracterísitcas de los OptionButton .................................................................................................. 26
10.2. Propiedades y Eventos de los Optionbutton ..................................................................................... 26
10.3. Reconocer el OptionButton seleccionado ......................................................................................... 26
10.4. Ejecutar rutina al seleccionar un botón de opción ............................................................................ 26
10.5. Atajo de teclado para seleccionar un botón de opción ..................................................................... 26
10.6. Limpieza de OptionButtons ............................................................................................................... 26
11. El objeto CHECKBOX o CASILLAS DE VERIFICACIÓN .................................................................................. 27
11.1. Caracteristicas de los Checkbox......................................................................................................... 27
11.2. Propiedades y Eventos de un CheckBox ............................................................................................ 27
11.3. Reconocer los CheckBox seleccionados ............................................................................................ 27
11.4. Código para selección de CheckBox .................................................................................................. 27
11.5. Atajo de teclado para tildar un checkbox (acelerator) ...................................................................... 27
11.6. Limpieza de CheckBox ....................................................................................................................... 27
11.7. Combinar Option y Checkbox ............................................................................................................ 27
12. El objeto COMMANDBUTTON o BOTON DE COMANDO ........................................................................... 28
12.1. Caracteristicas de un Botón de Comando ......................................................................................... 28
12.2. Propiedades y Eventos de los CommandButton ............................................................................... 28
12.3. Ejemplos del uso de un Botón de Comando...................................................................................... 28
12.4. Botones con imágenes ....................................................................................................................... 28
12.5. Atajos de teclado para ejecutar botones. ......................................................................................... 28
13. FORMULARIOS EN HOJA EXCEL ................................................................................................................. 29
13.1. Características de estos formularios ................................................................................................. 29
13.2. Usar solo celdas habilitadas .............................................................................................................. 29
13.3. Cómo volcar datos a una hoja resumen ............................................................................................ 29
13.4. Cómo limpiar un formulario en hoja ................................................................................................. 29
13.5. Uso de fórmulas ................................................................................................................................. 29
13.6. Uso de celdas con validación ............................................................................................................. 29
Al trabajar con Excel no podemos dejar de mencionar los ‘formularios’. Estos pueden ser diseñados en la misma hoja (con formatos más o menos elaborados) o diseñados en los llamados Userforms, que son formularios que se ‘muestran’ por encima de las hojas. Los usos más frecuentes, son:
- las aplicaciones comerciales (como Facturación, Cobranzas, Libro Compras), - aplicaciones contables (Contabilidad, LibroBancos, Inventarios, Gestión), - docentes o escolares (Gestor Docente, Cursos y Exámenes) - y tantas otras tareas que requieren de un formato con diseño.
En este manual trabajaremos en formato de hoja pero especialmente con Userforms. También trataremos el uso de otras ventanas o cuadros de diálogo, las que nos informan del estado de algún proceso o nos solicitan el ingreso de algún dato para completar alguna tarea. Esto son los MsgBox e InputBox. Separaremos entonces los temas en: 1- Msgbox e Inputbox: propios de la aplicación Excel con los que podremos recibir información o introducirlas en algún proceso. 2- Hoja con diseño de formulario: en estos modelos trabajamos directamente sobre la hoja Excel. Se utilizan generalmente celdas con funciones, con validación de datos y/o controles dibujados para el ingreso de datos. 3- Userforms: son los formularios creados por el usuario, desde el Editor de Macros. También se pueden encontrar en versiones anteriores de Excel las llamadas Hojas de Diálogo similares a cualquier hoja Excel al momento de agregar controles y similares a un Userform al momento de ejecutarlos. Actualmente se utilizan solo los Userforms por lo que no nos detendremos en este tipo de formularios. Nota: En los libros adjuntos se encuentran todos los ejemplos explicados en este manual, listos para usar.
Aprenderemos las características de cada uno de ellos y además: a- Cuándo utilizarlos y cómo diseñarlos. b- Ventajas y desventajas de cada uno de los métodos empleados: celdas con funciones, con validación, con controles, con Userforms. c- Uso de Controles. Sus Propiedades y Eventos. d- Distintos tipos de Userforms. Recomendación para el estudio de este manual: trabajar con un libro propio e ir repitiendo los pasos y luego comparar con el modelo del libro Ejemplos_Userforms u otros. Otros recursos para el estudio del tema:
1- Utilizar el buscador: para encontrar un tema en particular tal como se muestra en la imagen :
2- Utilizar los modelos entregados en los libros de ejemplos. Cuando el tema lo menciona, observar los ejemplos en los libros Excel que se entregan con este manual. 3- Observar los tips y las notas para distintas versiones Excel. Cuando existen diferencias entre distintas versiones de Excel, aparecerá una nota o comentario. 4- Seguir los vínculos a temas complementarios. Observar vínculos a otros capítulos que amplían o completan el tema tratado.
Los CONTROLES son los objetos que dibujamos en un formulario, ya sea en hoja de cálculo o en un Userform. Los utilizamos para mostrar información o avisos, ingresar datos, seleccionar opciones y/o ejecutar acciones programadas. Pueden estar programados como en los ejemplos siguientes, o ser utilizados solamente para mostrar algun texto o aviso. Ejemplo 1: botones de comando en hoja, para ejecutar las distintas tareas de esta aplicación.
Ejemplo 2: controles en un Userform:
4.1. TIPOS DE CONTROLES
Etiqueta (Label): Un control Label en un formulario muestra un texto descriptivo como títulos, leyendas, imágenes o breves instrucciones. Utilizaremos este control cuando la información no requiere ser modificada por el usuario. Cuadro o campo de Texto (Textbox): Un control TextBox es el control utilizado para recibir y mostrar información escrita por un usuario. También aquí podemos mostrar un conjunto de datos como una tabla, una consulta, una hoja de cálculo o el resultado de un cálculo
Cuadro de lista (Listbox): Muestra una lista de valores y le permite al usuario seleccionar uno o varios elementos de la misma. Cuadro combinado (Combobox): Combina las características de un control ListBox y un control TextBox. El usuario puede escribir un valor nuevo, como en un control TextBox o bien puede seleccionar un valor existente como en un control ListBox. La lista en un control ComboBox está formada por filas de datos. Cada fila puede tener una o más columnas, las cuales pueden mostrarse con o sin títulos. Cuadro de grupo (Frame): Crea un grupo de controles visuales y funcionales. Podemos utilizar el control Frame para crear un grupo de opciones. Los botones de opción al encontrarse dentro de un Frame se cancelan unos a otros. Es el ejemplo de la imagen, al seleccionar PDF se cancela la opción Excel. También podemos utilizar un control Frame para agrupar controles con contenidos estrechamente relacionados. En la siguiente imagen se observan varios Frames con controles relacionados. Botones de opción (OptionButton): Muestra el estado de selección de un elemento en un grupo de opciones. Utilizaremos un control OptionButton para mostrar la selección de un único elemento de un grupo. Cada control OptionButton de un control Frame es mutuamente exclusivo. Casilla de verificación (CheckBox): Utilizaremos un control CheckBox para ofrecer al usuario la posibilidad de elegir entre dos o más posibles valores. También podemos utilizar casillas de verificación dentro de un cuadro de grupo para seleccionar uno o más elementos relacionados de un grupo. Botón de comando (CommandButton): Inicia, finaliza o interrumpe una acción o una serie de acciones. Son los controles utilizados para indicar las acciones como 'Aceptar', 'Cancelar', 'Salir', etc. La macro o el procedimiento de evento asignado al evento Click del control CommandButton determina qué hace el control CommandButton
4.2. COMO COLOCAR CONTROLES EN UNA HOJA EXCEL
Para agregar Controles a un formulario en hoja contamos con 2 barras:
Cuadro de Controles (Activex ) y Barra Formularios Estas barras se acceden desde la ficha Programador (o Desarrollador), Controles.
Para modificar algunos aspectos de un control hay que pasar al Modo Diseño.
Nota: Para eliminar un control dibujado en hoja, seleccionarlo con clic derecho y optar por ‘Cortar’ o Supr. Si no se selecciona, se trata de un control ActiveX y se debe pasar previamente al modo diseño para poder suprimirlo (ver imagen siguiente).
En los temas siguientes trataremos cada barra por separado.
4.3. BARRA ACTIVEX
Estos controles, también llamados Controles ActiveX son los más 'programables'. A continuación veremos cómo trabajar con ellos en una hoja Excel. Pasos a seguir: Seleccionar desde la barra el control deseado y dibujarlo en la hoja. Pasar a Modo Diseño. Con clic derecho sobre el control, podemos observar entre sus opciones, las siguientes: 1 - Propiedades: aquí se configura el texto del control, colores, fuente del texto, y otras propiedades según de qué control se trate. Nota: como las propiedades de los controles ActiveX son comunes a las de los controles en Userforms, se detallan en el cap.22 y cada control en particular a partir del cap 6.
2 - Ver código: nos lleva al Editor de Macros, para escribir las instrucciones necesarias para el control dibujado. De forma predeterminada, el Editor nos mostrará las 2 líneas (inicio y fin) de la rutina. Por ej:
Private Sub TextBox1_Change() End Sub
Importante: Las rutinas de estos objetos se colocan en el Editor, en el objeto HOJA donde se ha dibujado el control.
3 –Objeto ……: un modo rápido para cambiar el texto o contenido del control, sin recurrir a las Propiedades. 4 – Agrupar: esta opción nos permite agrupar varios controles y así trabajarlo como 1 solo. Es útil cuando tenemos que moverlos y ubicarlos de modo conjunto. 5 – Ordenar: nos permite colocar distintos objetos en distintas capas, enviándolos detrás o delante de otros. 6 - Formato de control: aquí nos interesan las siguientes pestañas:
Proteger: manteniendo el control 'bloqueado' se evitará su modificación una vez que la hoja se encuentre protegida. Propiedades: tal como lo muestra la imagen, desde aquí se puede permitir la impresión o no del objeto y decidir si el objeto podrá moverse y cambiar su tamaño con las celdas.
Nota: En cap.siguientes veremos cómo se programa este tipo de controles.
4.4. BARRA FORMULARIOS
Para agregar controles con esta barra, estos son los pasos a seguir: Seleccionar desde la barra el control deseado y dibujarlo en la hoja. Según de qué control se trate, se activará la siguiente ventana que nos permitirá asociar una rutina al control (seleccionándola de la lista). Si deseamos escribir una nueva macro para este control cambiaremos el nombre que aparece de modo predeterminado y presionaremos el botón ‘Nuevo’. Esto nos llevará a un módulo del Editor y allí escribiremos las instrucciones necesarias. El botón Grabar activará la grabadora de macros, tal como lo hacíamos desde el menú Herramientas, Macros o con el actual botón de Grabar que aparece en la barra de Estado.
Si se trata de un botón que se utilizará solo para dejar alguna indicación o mensaje y no estará programado, presionamos el botón Cancelar. Nota: las rutinas para estos objetos se colocan en un módulo del Editor.
Al hacer clic derecho sobre el control, la opción Formato de control, a diferencia de los controles ActiveX, presenta una pestaña más, llamada Control.
Desde aquí podemos establecer los siguientes parámetros: 1-la celda vinculada con el control, tarea que en los controles ActiveX se configura desde la ventana Propiedades, LinkedCell. Es decir en qué celda se guardará el valor o estado del control. 2-rango de entrada (tratándose de listas o combos), lo que en controles ActiveX se configura desde la ventana Propiedades, ListFillRange. 3- Líneas de unión verticales: (para los combos). Indica la cantidad de líneas que se muestran al desplegar el control. Nota: a partir del cap.7 veremos otras propiedades de los controles.
4.5. CÓMO RECONOCER SI SE TRATA DE UN CONTROL ‘ACTIVEX’ O DE ‘FORMULARIO’?
En ocasiones no podemos distinguir a simple vista de qué tipo de control se trata, si de un control Activex o de un control Formulario. Veamos algunas diferencias. 1 - No se puede seleccionar o hacer clic derecho sobre un control Activex, salvo que se encuentre en Modo Diseño. Es decir que si hacemos clic derecho sobre un control y 'nada sucede' es que se trata de un control Activex. Si en cambio se activan los controladores, mostrando además un menú desplegable, se ha utilizado la barra Formulario.
2-Al hacer clic derecho sobre un control Formulario, en la barra de nombres (delante de la barra de funciones), aparece el nombre y nro del control con que Excel identifica ese objeto (Lista desplegable1, Cuadro de Lista2, etc - ver imagen anterior) En cambio si se trata de un control Activex los nombres son los mismos utilizados en los Userforms: TextBox, ComboBox, etc. 3 – Al hacer clic derecho la opción 'Asignar macro' nos identifica que se trata de un control dibujado con la barra Formulario, en cambio si se trata de un control Activex aparecerá la opción Ver código. 4- Los controles de la barra Formulario, no permiten cambios en cuanto al aspecto (color, bordes, imagen). Esto solo es posible con los controles ActiveX.
4.6. CONOCER RUTINA ASOCIADA A UN CONTROL
Como vimos en el tema anterior, al clic derecho de un control Formulario, aparecerá en un menú desplegable la opción 'Asignar Macro'. Activando esta opción, la ventana que se nos ofrece nos indica además el nombre del objeto. En cambio, si utilizamos un control ActiveX, estando en Modo Diseño, clic derecho sobre el control, la opción es: Ver código. Esto nos llevará al objeto HOJA donde está dibujado este control, mostrando el inicio de una rutina. Podemos utilizar ese evento predeterminado o buscar el más apropiado.
En este Modelo confeccionaremos un Userform para solicitar una clave de ingreso según la tarea a realizar.(ver en libro Ejemplos_Userforms el modelo nº 1)
Este segundo modelo de Userform lo utilizaremos para el ingreso de algunos datos a una base. La intención aquí es mostrar cómo se pueden establecer valores de inicio utilizando las propiedades o mediante código (ver en libro Ejemplos_Userforms el modelo nº 2)
La idea de este tercer modelo es conocer cómo debemos programar las restricciones en cada control, para el ingreso de datos que alimentarán una base de datos. En el libro 'Ejemplos_Userforms' que se adjunta con este manual, se puede acceder desde el Editor al formulario del modelo 3 (UF_Valida). Allí se podrá seleccionar cada control para observar sus otras propiedades. En el cap. 7 (TextBox), se explicaron los temas de validaciones y conversiones. A continuación veremos algunos ejemplos del volcado de datos a la hoja.
16.2. VUELCO DE DATOS VALIDADOS O CONVERTIDOS, A HOJA
16.3. VOLCAR DATOS COMO HIPERVÍNCULOS. BUSCAR VINCULACIÓN.
17.1. FORMULARIO PARA ALTAS, BAJAS Y MODIFICACIONES
El siguiente modelo nos permitirá mantener actualizada una Base de Datos. En este caso se utilizó un control ComboBox para el ingreso del código, que será el criterio de búsqueda, pero también puede utilizarse un control Textboxpara este fin. El modelo Nº 4 que se encuentra en el libro Ejemplos-Userforms nos muestra el siguiente Userform:
Nota: otro modelo completo se puede descargar desde el blog, desde donde se tiene acceso además al video explicativo: http://elsamatilde.blogspot.com/2018/03/interactuando-con-userform.html
En ocasiones deseamos mostrar una pequeña ayuda en nuestra aplicación, para que el usuario pueda, ante una duda, consultar rápidamente y nada mejor entonces que mostrar un formulario de este tipo:
Al hacer clic en un control SpinButton solamente cambia el valor del control SpinButton. Podemos escribir una rutina que utilice el control SpinButton para actualizar el valor mostrado de otro control.
20.1.1. Propiedades y Eventos de un SpinButton
20.1.2. Ejemplo de código para un SpinButton
20.2. CONTROL SCROLLBAR O BARRA DE DESPLAZAMIENTO
Devuelve o establece el valor de otro control basándose en la posición del cuadro de desplazamiento. Un control ScrollBar es un control autónomo que puede situarse en un formulario.
Con este control podemos mostrar una imagen en un formulario. El control Image permite mostrar una imagen como parte de los datos de un formulario.
20.3.1. Propiedades y Eventos de un control Image
20.3.2. Ejemplo de código para un control Image
20.3.3. Control con Imagen animada Las imágenes insertadas en un Userform no necesariamente tienen que ser ‘estáticas’. Excel también permite el uso de imágenes animadas. Nota: en el libro Ejemplos-Userforms buscar el 2do modelo del ejercicio Nº 8
20.3.4. Gráficos- Tabla Dinámica –Tabla de datos como imagen Nota: ver 3er modelo del Ejercicio Nº 8 del libro Ejemplos_Userforms.
En un formulario, este control muestra la dirección de un rango de celdas que el usuario ha seleccionado en una o varias hojas de cálculo.
20.4.1. Propiedades y Eventos de un control RefEdit
20.4.2. Ejemplo de código para un control RefEdit
20.5. CONTROL TOGGLEBUTTON O BOTÓN DE ALTERNAR
Muestra el estado de selección de un elemento. Haciendo clic en este control se puede alternar entre 2 opciones. Por ejemplo haciendo clic se modifica un control y con otro clic se vuelve atrás.
20.5.1. Propiedades y Eventos de un contral ToggleButton
20.5.2. Ejemplo de código para un control ToggleButton
20.6. CONTROL TABSTRIP O BARRA DE TABULACIONES
Utilizaremos un control TabStrip para ver conjuntos diferentes de información para controles relacionados.
20.6.2. Ejemplo de código para un control TabStrip
20.7. LOS CONTROLES CALENDAR Y DATAPICKER
Estos controles no se encuentran de modo predeterminado en la barra de herramientas. Haciendo clic derecho sobre esta barra, opción ‘Controles adicionales’ nos permitirá buscarlos en la lista que se desplegará. En versiones Excel con estensión de 4 caracteres (xlsx) es probable que ya no venga instalado el control Calendar sino solo el DTPicker.
20.7.1. Propiedades y Eventos de controles DTPicker y Calendar
20.7.2. Ejemplos de código para controles Calendar y DTPicker: