DM_Forms_2010

17
VERSIÓN DEMO MANUAL FORMULARIOS EN EXCEL (2007-2010) por Elsa Matilde Meyer INDICE DE CONTENIDOS En esta versión se incluye el Indice de Contenidos y parte de los 2 primeros capítulos a cuyos temas se puede acceder desde el mismo Indice. También se incluyen Imágenes de algunos temas y formularios que se desarrollan en este manual.

Transcript of DM_Forms_2010

Page 1: DM_Forms_2010

VERSIÓN DEMO

MANUAL

FORMULARIOS EN EXCEL

(2007-2010)

por Elsa Matilde Meyer

INDICE DE CONTENIDOS

En esta versión se incluye el Indice de Contenidos y parte de los 2 primeros capítulos a cuyos temas s e puede acceder desde el mismo Indice.

También se incluyen Imágenes de algunos temas y for mularios que se desarrollan en este manual.

Page 2: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 2

1. INTRODUCCIÓN ............................................................................................................................................... 8

2. LOS MSGBOX ................................................................................................................................................... 9

2.1. Sintaxis de un MsgBox ............................................................................................................................. 9

2.2. Botones o Buttons en un MsgBox ......................................................................................................... 11

2.3. Ejemplos de MsgBox con su sintaxis ..................................................................................................... 12

2.4. Cómo indicar saltos de línea en un mensaje ......................................................................................... 13

2.5. Programando MsgBox ........................................................................................................................... 13

2.6. MsgBox con botones personalizados .................................................................................................... 14

3. LOS INPUTBOX .................................................................................................. ¡Error! Marcador no definido.

3.1. La sintaxis de un InputBox ........................................................................ ¡Error! Marcador no definido.

3.2. Ejemplos de InputBox con su sintaxis ....................................................... ¡Error! Marcador no definido.

3.3. Programando InputBox ............................................................................ ¡Error! Marcador no definido.

3.4. Cancelar un InputBox: cómo detectarlo ................................................... ¡Error! Marcador no definido.

3.5. Seleccionar rango desde un InputBox ...................................................... ¡Error! Marcador no definido.

4. USO DE CONTROLES ......................................................................................... ¡Error! Marcador no definido.

4.1. Tipos de controles .................................................................................... ¡Error! Marcador no definido.

4.2. Como colocar controles en una hoja Excel ............................................... ¡Error! Marcador no definido.

4.3. Barra ActiveX ............................................................................................ ¡Error! Marcador no definido.

4.4. Barra Formularios ..................................................................................... ¡Error! Marcador no definido.

4.5. Cómo reconocer si se trata de un control ActiveX o de Formulario? ...... ¡Error! Marcador no definido.

4.6. Conocer rutina asociada a un control....................................................... ¡Error! Marcador no definido.

5. LOS USERFORMS ............................................................................................... ¡Error! Marcador no definido.

5.1. Tipos de Userforms ................................................................................... ¡Error! Marcador no definido.

5.2. Crear un Userform .................................................................................... ¡Error! Marcador no definido.

5.3. Propiedades y eventos ............................................................................. ¡Error! Marcador no definido.

5.4. Dibujar controles en un Userform ............................................................ ¡Error! Marcador no definido.

5.4.1. Asignar iguales propiedades a controles .......................................... ¡Error! Marcador no definido.

5.4.2. Asignar nombre a los controles ........................................................ ¡Error! Marcador no definido.

5.5. Cómo ejecutar o Llamar a un Userform ................................................... ¡Error! Marcador no definido.

5.6. Cómo programar el formulario y sus controles ........................................ ¡Error! Marcador no definido.

5.7. Propiedades del Userform ........................................................................ ¡Error! Marcador no definido.

5.7.1. Lista detallada de Propiedades ......................................................... ¡Error! Marcador no definido.

5.8. Eventos del Userform ............................................................................... ¡Error! Marcador no definido.

Page 3: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 3

5.9. Userform al tope de la ventana ................................................................ ¡Error! Marcador no definido.

5.10. Userform siempre centrado ................................................................. ¡Error! Marcador no definido.

5.11. Inmovilizar un Userform ....................................................................... ¡Error! Marcador no definido.

5.12. Ocultar un Userform ............................................................................. ¡Error! Marcador no definido.

5.13. Cerrar un Userform............................................................................... ¡Error! Marcador no definido.

5.14. Acceder al libro desde un Userform abierto ........................................ ¡Error! Marcador no definido.

5.15. Inhabilitar botón de Cerrar ................................................................... ¡Error! Marcador no definido.

5.16. Agregar botones de Minimizar y Maximizar en un Userform .............. ¡Error! Marcador no definido.

6. EL CONTROL LABEL O ETIQUETA ...................................................................... ¡Error! Marcador no definido.

6.1. Características de un control Label ......................................................... ¡Error! Marcador no definido.

6.2. Propiedades y Eventos de un Label .......................................................... ¡Error! Marcador no definido.

6.3. Inicializando un control Label ................................................................... ¡Error! Marcador no definido.

6.4. Uso de Label como contador .................................................................... ¡Error! Marcador no definido.

6.5. Mostrar mensaje al pasar el mouse por el control .................................. ¡Error! Marcador no definido.

6.6. Limpieza de Label ..................................................................................... ¡Error! Marcador no definido.

7. El CONTROL TEXTBOX o CUADROS DE TEXTO .................................................. ¡Error! Marcador no definido.

7.1. Caracteristicas de un control TextBox ...................................................... ¡Error! Marcador no definido.

7.2. Propiedades y Eventos de un TextBox ..................................................... ¡Error! Marcador no definido.

7.3. Inicializando un control Textbox .............................................................. ¡Error! Marcador no definido.

7.4. Textbox con datos de otro Userform ....................................................... ¡Error! Marcador no definido.

7.5. Asignando orden o foco a los controles ................................................... ¡Error! Marcador no definido.

7.6. TextBox para contraseñas ........................................................................ ¡Error! Marcador no definido.

7.7. Funciones de validación y conversión ...................................................... ¡Error! Marcador no definido.

7.8. Cuándo validar datos de ingreso .............................................................. ¡Error! Marcador no definido.

7.9. Validar formatos fecha ............................................................................. ¡Error! Marcador no definido.

7.10. Convertir datos- Pasar datos a hoja ..................................................... ¡Error! Marcador no definido.

7.10.1. Seleccionar rangos con RefEdit ........................................................ ¡Error! Marcador no definido.

7.11. Limpieza de Textbox ............................................................................. ¡Error! Marcador no definido.

8. Los objetos COMBOBOX y LISTBOX .................................................................. ¡Error! Marcador no definido.

8.1. Caracteristicas de los Combobox/ListBox................................................. ¡Error! Marcador no definido.

8.2. Propiedades y Eventos de los Combobox y ListBox ................................. ¡Error! Marcador no definido.

8.3. Ejemplos de Principales propiedades de Combobox/ListBox .................. ¡Error! Marcador no definido.

8.3.1. Asignar rango a un Combo o Lista .................................................... ¡Error! Marcador no definido.

8.3.2. Celda asociada al elemento seleccionado ........................................ ¡Error! Marcador no definido.

Page 4: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 4

8.3.3. Autocompletar datos en un control ................................................. ¡Error! Marcador no definido.

8.3.4. Permitir el ingreso de datos que no están en la lista ....................... ¡Error! Marcador no definido.

8.3.5. Seleccionar varios registros de una lista (solo para LISTBOX) ......... ¡Error! Marcador no definido.

8.3.6. Mover elementos desde un Listbox a un Textbox ............................ ¡Error! Marcador no definido.

8.4. Actualizar rango asociado a un Combobox/ListBox ................................ ¡Error! Marcador no definido.

8.4.1. Datos fijos ......................................................................................... ¡Error! Marcador no definido.

8.4.2. Datos variables – Rango dinámico .................................................... ¡Error! Marcador no definido.

8.5. Llenar Combobox/Listbox de varias col .................................................... ¡Error! Marcador no definido.

8.6. Listas o cuadros de varias columnas......................................................... ¡Error! Marcador no definido.

8.6.1. Cantidad de columnas ...................................................................... ¡Error! Marcador no definido.

8.6.2. ¿Qué valor guardar o mostrar en controles de varias columnas?... ¡Error! Marcador no definido.

8.6.3. Ancho de columnas .......................................................................... ¡Error! Marcador no definido.

8.6.4. Títulos de columnas .......................................................................... ¡Error! Marcador no definido.

8.7. Mostrar elemento seleccionado de lista .................................................. ¡Error! Marcador no definido.

8.8. Seleccionar varios registros de un ListBox................................................ ¡Error! Marcador no definido.

8.9. Quitar elementos de una lista .................................................................. ¡Error! Marcador no definido.

8.10. Reordenar elementos de una lista ....................................................... ¡Error! Marcador no definido.

8.11. Desplegar la lista de un Combobox ...................................................... ¡Error! Marcador no definido.

8.12. Contar elementos de una lista .............................................................. ¡Error! Marcador no definido.

8.13. Pasar datos de un Combobox o Lista A la hoja ..................................... ¡Error! Marcador no definido.

8.14. Limpieza de Combobox/ListBox ........................................................... ¡Error! Marcador no definido.

9. El objeto FRAME O MARCO .............................................................................. ¡Error! Marcador no definido.

9.1. Caracteristicas de un control Frame ........................................................ ¡Error! Marcador no definido.

9.2. Propiedades y Eventos de un control Frame ............................................ ¡Error! Marcador no definido.

9.3. Agrandar un Frame a medida que se agregan datos ................................ ¡Error! Marcador no definido.

10. El objeto OPTIONBUTTON O BOTONES DE OPCIÓN ................................... ¡Error! Marcador no definido.

10.1. Caracterísitcas de los OptionButton ..................................................... ¡Error! Marcador no definido.

10.2. Propiedades y Eventos de los Optionbutton ........................................ ¡Error! Marcador no definido.

10.3. Reconocer el OptionButton seleccionado ............................................ ¡Error! Marcador no definido.

10.4. Ejecutar rutina al seleccionar un botón de opción ............................... ¡Error! Marcador no definido.

10.5. Limpieza de OptionButtons .................................................................. ¡Error! Marcador no definido.

11. El objeto CHECKBOX o CASILLAS DE VERIFICACIÓN ..................................... ¡Error! Marcador no definido.

11.1. Caracteristicas de los Checkbox............................................................ ¡Error! Marcador no definido.

11.2. Propiedades y Eventos de un CheckBox ............................................... ¡Error! Marcador no definido.

Page 5: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 5

11.3. Reconocer los CheckBox seleccionados ............................................... ¡Error! Marcador no definido.

11.4. Código para selección de CheckBox ..................................................... ¡Error! Marcador no definido.

11.5. Atajo de teclado para tildar control ..................................................... ¡Error! Marcador no definido.

11.6. Limpieza de CheckBox .......................................................................... ¡Error! Marcador no definido.

12. El objeto COMMANDBUTTON o BOTON DE COMANDO .............................. ¡Error! Marcador no definido.

12.1. Caracteristicas de un Botón de Comando ............................................ ¡Error! Marcador no definido.

12.2. Propiedades y Eventos de los CommandButton .................................. ¡Error! Marcador no definido.

12.3. Ejemplos del uso de un Botón de Comando......................................... ¡Error! Marcador no definido.

12.4. Botones con imágenes .......................................................................... ¡Error! Marcador no definido.

13. FORMULARIOS EN HOJA EXCEL .................................................................... ¡Error! Marcador no definido.

13.1. Características de estos formularios .................................................... ¡Error! Marcador no definido.

13.2. Usar solo celdas habilitadas ................................................................. ¡Error! Marcador no definido.

13.3. Cómo volcar datos a una hoja resumen ............................................... ¡Error! Marcador no definido.

13.4. Cómo limpiar un formulario en hoja .................................................... ¡Error! Marcador no definido.

13.5. Uso de fórmulas .................................................................................... ¡Error! Marcador no definido.

13.6. Uso de celdas con validación ................................................................ ¡Error! Marcador no definido.

13.7. Programando controles ........................................................................ ¡Error! Marcador no definido.

14. MODELO 1: USERFORM DE APERTURA CON CONTRASEÑA ......................... ¡Error! Marcador no definido.

14.1. Ejemplo de Userform de ingreso .......................................................... ¡Error! Marcador no definido.

14.2. Asignando propiedades ........................................................................ ¡Error! Marcador no definido.

14.3. Programando un Userform de ingreso ................................................ ¡Error! Marcador no definido.

14.4. Llamando al Userform de ingreso ........................................................ ¡Error! Marcador no definido.

15. MODELO 2: USERFORM CON VALORES INICIALES – USO DE COMBOBOX ... ¡Error! Marcador no definido.

15.1. Ejemplo de Userform con valores iniciales .......................................... ¡Error! Marcador no definido.

15.2. Asignar valores de inicio a controles ................................................... ¡Error! Marcador no definido.

15.3. Llamando al Userform con valores iniciales ......................................... ¡Error! Marcador no definido.

16. MODELO 3: INGRESO DE DATOS CON VALIDACIÓN ..................................... ¡Error! Marcador no definido.

16.1. Diseño formulario con Validación ........................................................ ¡Error! Marcador no definido.

16.2. Vuelco de datos VALIDADOS O CONVERTIDOS, a hoja ......................... ¡Error! Marcador no definido.

17. MODELO 4: ALTAS, BAJAS Y CAMBIOS A BASE DE DATOS ............................ ¡Error! Marcador no definido.

17.1. Formulario para Altas, Bajas y Modificaciones ..................................... ¡Error! Marcador no definido.

17.2. Permitir ingreso de datos en Combobox .............................................. ¡Error! Marcador no definido.

17.3. Botones para Altas, Bajas y Cambios .................................................... ¡Error! Marcador no definido.

17.4. Botones para navegar por la base ........................................................ ¡Error! Marcador no definido.

Page 6: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 6

18. MODELO 5: FORMULARIO MULTIPAGINA .................................................. ¡Error! Marcador no definido.

18.1. Consideraciones en formularios Multipage ......................................... ¡Error! Marcador no definido.

18.2. Propiedades de un Multipage y sus Pages ........................................... ¡Error! Marcador no definido.

18.3. Eventos de un Multipage ...................................................................... ¡Error! Marcador no definido.

18.4. Diseño de un formulario Multipage ..................................................... ¡Error! Marcador no definido.

18.5. Añadir, quitar o mover pestañas ......................................................... ¡Error! Marcador no definido.

18.6. Programando botones comunes .......................................................... ¡Error! Marcador no definido.

18.7. Programando botones de avance......................................................... ¡Error! Marcador no definido.

18.8. Multipage de colores ............................................................................ ¡Error! Marcador no definido.

19. MODELO 6: FORMULARIO DE AYUDA .......................................................... ¡Error! Marcador no definido.

19.1. Diseño de un formulario de Ayuda ....................................................... ¡Error! Marcador no definido.

19.2. Configurando el formulario de Ayuda .................................................. ¡Error! Marcador no definido.

19.3. Programando un form de Ayuda .......................................................... ¡Error! Marcador no definido.

20. CONTROLES ESPECIALES ............................................................................... ¡Error! Marcador no definido.

20.1. CONTROL SPINBUTTON o Botón de nro ............................................... ¡Error! Marcador no definido.

20.1.1. Propiedades y Eventos de un SpinButton ........................................ ¡Error! Marcador no definido.

20.1.2. Ejemplo de código para un SpinButton ............................................ ¡Error! Marcador no definido.

20.2. CONTROL SCROLLBAR o Barra de desplazamiento .............................. ¡Error! Marcador no definido.

20.2.1. Propiedades y Eventos de un ScrollBar ............................................ ¡Error! Marcador no definido.

20.2.2. Ejemplo de código para un ScrollBar ................................................ ¡Error! Marcador no definido.

20.3. CONTROL IMAGE o de Imagen ............................................................. ¡Error! Marcador no definido.

20.3.1. Propiedades y Eventos de un control Image .................................... ¡Error! Marcador no definido.

20.3.2. Ejemplo de código para un control Image ........................................ ¡Error! Marcador no definido.

20.3.3. Control con Imagen animada ........................................................... ¡Error! Marcador no definido.

20.3.4. Gráficos- Tabla Dinámica –Tabla de datos como imagen ................. ¡Error! Marcador no definido.

20.4. CONTROL REFEDIT ................................................................................ ¡Error! Marcador no definido.

20.4.1. Propiedades y Eventos de un control RefEdit .................................. ¡Error! Marcador no definido.

20.4.2. Ejemplo de código para un control RefEdit ...................................... ¡Error! Marcador no definido.

20.5. CONTROL TOGGLEBUTTON o Botón de alternar .................................. ¡Error! Marcador no definido.

20.5.1. Propiedades y Eventos de un contral ToggleButton ........................ ¡Error! Marcador no definido.

20.5.2. Ejemplo de código para un control ToggleButton ............................ ¡Error! Marcador no definido.

20.6. CONTROL TABSTRIP o Barra de tabulaciones ....................................... ¡Error! Marcador no definido.

20.6.1. Propiedades y Eventos de un TablStrip ............................................ ¡Error! Marcador no definido.

20.6.2. Ejemplo de código para un control TabStrip .................................... ¡Error! Marcador no definido.

Page 7: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 7

20.7. Los CONTROLES CALENDAR Y DATAPICKER ......................................... ¡Error! Marcador no definido.

20.7.1. Propiedades y Eventos de controles DTPicker y Calendar ............... ¡Error! Marcador no definido.

20.7.2. Ejemplos de código para controles Calendar y DTPicker: ................ ¡Error! Marcador no definido.

21. PROPIEDADES DE LOS CONTROLES .............................................................. ¡Error! Marcador no definido.

21.1. Propiedades de USERFORM Y CONTROLES .......................................... ¡Error! Marcador no definido.

Page 8: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 8

1. INTRODUCCIÓN

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), contables (Contabilidad, LibroBancos, Inventarios, Gestión), docentes o escolares (Gestor Docente, Cursos y Exámenes) y tantas otras que requieren de un formato con diseño. En este manual trabajaremos tanto en formato de hoja como en Userforms. Pero también trataremos el uso de otras ventanas de diálogo, las que nos informan del estado de algún proceso o nos solicitan el ingreso de algún dato, como 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 utilizamos la misma hoja Excel. Se utiliza 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 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. Otros recursos para el estudio del tema: 1- Utilizar el buscador: para encontrar un tema en particular tal como se muestra en la imagen (ver 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

Page 9: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 9

2. LOS MSGBOX

Los MsgBox o CUADROS DE MENSAJE son los cuadros que se utilizan para mostrar un mensaje. El usuario podrá o no tomar una decisión según los botones allí presentados. El programa devuelve un valor (tipo Integer) que corresponde al botón presionado por el usuario. Este valor se utilizará en la programación para determinar las acciones a seguir. Este tipo de formularios puede ser incluído en cualquier rutina, ya sea en eventos de libro, hojas o dentro de una macro que se ejecute al llamado de un botón. Importante: si bien no hay límite para el uso de estos cuadros, el uso en exceso de mensajes al usuario, puede tornar

nuestra aplicación un tanto tediosa y lenta.

Ejemplos:

1 – Paran notificarnos que un proceso finalizó

2 - Al intentar imprimir una hoja puede recordarnos que alguna celda se encuentra vacía. El usuario puede cancelar o no el proceso.

2.1. SINTAXIS DE UN MSGBOX

MsgBox(prompt[, buttons][, title][, helpfile, context])

Ejemplo:

Page 10: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 10

Argumentos: Prompt: Requerido. Expresión de cadena que representa el prompt en el cuadro de diálogo (texto del

formulario). La longitud máxima de prompt es de aproximadamente 1024 caracteres, según el ancho de los caracteres utilizados. Si prompt consta de más de una línea, puede separarlos utilizando un carácter de retorno de carro (Chr(13)) o un carácter de avance de línea (Chr(10)), o una combinación de caracteres de retorno de carro – avance de línea (Chr(13) y Chr(10)) entre cada línea y la siguiente. Buttons: Opcional. Expresión numérica que corresponde a la suma de los valores que especifican el número y el tipo de los botones que se pretenden mostrar, el estilo de icono que se va a utilizar, la identidad del botón predeterminado y la modalidad del cuadro de mensajes. Si se omite este argumento, el valor predeterminado para buttons es 0. Tittle: Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Si se omite title, en la barra de título se coloca el nombre de la aplicación. Helpfile: Opcional. Expresión de cadena que identifica el archivo de Ayuda que se utiliza para proporcionar ayuda interactiva en el cuadro de diálogo. Si se especifica helpfile, también se debe especificar context. Context: Opcional. Expresión numérica que es igual al número de contexto de Ayuda asignado por el autor al tema de Ayuda correspondiente. Si se especifica context, también se debe especificar helpfile Comentarios: Cuando se proporcionan tanto helpfile como context, el usuario puede presionar F1 (Windows) o Ayuda (Macintosh) para ver el tema de Ayuda correspondiente al context.

Para el ejemplo de la imagen se utilizaron estos argumentos:

Prompt = “La acción solicitad demorará varios minutos. ¿Desea continuar?” Buttons = vbQuestion + vbYesNo Title = “Confirmar”

NOTAS:

1- Si necesitamos controlar la opción elegida por el usuario, utilizaremos una variable como resultado del MsgBox, en una instrucción del tipo:

variable = Msgbox(...........)

2- Si deseamos omitir algún argumento de posición, como por ejemplo los botones, incluiremos el delimitador de coma correspondiente.

MsgBox "Faltan datos en campo 'Vendedor'", , "Atención"

3- Si el cuadro de diálogo cuenta con un botón Cancelar, el presionar la tecla ESC tendrá el mismo efecto que hacer clic en este botón. 4- No es necesario memorizar los nombres de los botones. Al ir escribiendo la instrucción, cuando lleguemos a la sección 'Buttons' Excel nos mostrará la lista de opciones, tal como vemos en la siguiente imagen:

Page 11: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 11

2.2. BOTONES O BUTTONS EN UN MSGBOX

Hemos visto en la sintaxis que un argumento se denomina 'Buttons':

MsgBox(prompt[, buttons][, title][, helpfile, context])

Este argumento se compone de 3 tipos de botones que son: iconos + los de decisión + el botón predeterminado, pudiendo utilizarse 1, varios, todos o ninguno. Este argumento es posible agregarlo en forma de constante o de valores según la siguiente tabla: Constante Valor Descripción

VbOKOnly 0 Muestra solamente el botón Aceptar.

VbOKCancel 1 Muestra los botones Aceptar y Cancelar.

VbAbortRetryIgnore 2 Muestra los botones Anular, Reintentar e Ignorar.

VbYesNoCancel 3 Muestra los botones Sí, No y Cancelar.

VbYesNo 4 Muestra los botones Sí y No.

VbRetryCancel 5 Muestra los botones Reintentar y Cancelar.

VbCritical 16 Muestra el icono de mensaje crítico.

VbQuestion 32 Muestra el icono de pregunta de advertencia.

VbExclamation 48 Muestra el icono de mensaje de advertencia.

VbInformation 64 Muestra el icono de mensaje de información.

VbDefaultButton1 0 El primer botón es el predeterminado.

VbDefaultButton2 256 El segundo botón es el predeterminado.

VbDefaultButton3 512 El tercer botón es el predeterminado.

VbDefaultButton4 768 El cuarto botón es el predeterminado.

VbMsgBoxHelpButton 16384 Agrega el botón Ayuda al cuadro de mensaje.

VbMsgBoxSetForeground 65536 Especifica la ventana del cuadro de mensaje como la ventana de primer plano.

VbMsgBoxRight 524288 El texto se alínea a la derecha.

El primer grupo de valores (0 a 5) describe el número y el tipo de los botones mostrados en el cuadro de diálogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono, el tercer grupo (0, 256, 512) determina el botón predeterminado .

Page 12: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 12

2.3. EJEMPLOS DE MSGBOX CON SU SINTAXIS

A continuación veremos algunos ejemplos de estos cuadros de mensaje y su sintaxis correspondiente en una rutina VBA. Las rutinas completas se encuentran en el tema Programando MsgBox de este mismo capítulo: Ejemplo 1: MsgBox "Bienvenidos"

(notar que no se especificó el argumento Buttons, por lo que se muestra el predeterminado (Aceptar) y ningún

icono, como tampoco el argumento Título)

Ejemplo 2: MsgBox "Faltan datos en campo 'Vendedor'", vbCritical, "Atención"

(notar que no se especificaron botones de decisión, por lo que se muestra el predeterminado: Aceptar)

Ejemplo 3:

respuesta = MsgBox("La acción solicitada demorará varios minutos" & Chr(10) & "¿Desea continuar?",

vbQuestion + vbYesNo, "Confirmar")

La decisión del usurio se guardará en una variable llamada ‘respuesta’. Se utilizó el icono Question y el botón

de 2 opciones (Si-No))

Ejemplo 4: En este ejemplo se optó por utilizar el valor (2) en lugar de la constante (VbAbortRetryIgnore) para el tipo de botones a mostrar

Page 13: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 13

Dim opcion

opcion = MsgBox("Error en campo 'Vendedor'", vbCritical + 2 + vbDefaultButton1, "Atención")

En este ejemplo se utilizaron los 3 principales argumentos: Prompt o texto, Buttons (icono, botones de opción y

botón predeterminado) y Title (título del formulario)

2.4. CÓMO INDICAR SALTOS DE LÍNEA EN UN MENSAJE

En el ejemplo 3 del tema anterior, observamos que el mensaje se presenta en 2 líneas. Para ello utilizaremos la función CHR(10) en el argumento 'Prompt' del MsgBox. Ejemplo:

MsgBox("La acción solicitada demorará varios minutos" & Chr(10) & "¿Desea continuar?", ............)

Para ingresar 2 o más saltos, repetiremos la función CHR, tantas veces como saltos de líneas necesitemos agregar:

MsgBox("La acción solicitada demorará varios minutos" & Chr(10) & Chr(10) & "¿Desea continuar?"

2.5. PROGRAMANDO MSGBOX

Hemos visto en el tema anterior, 4 modelos básicos de cuadros de mensaje o MsgBox ¿Qué podemos programar en estos cuadros de mensaje? Las distintas acciones que se deben ejecutar a partir del botón seleccionado por parte del usuario. Observemos que en los dos primeros ejemplos no se espera ninguna decisión del usuario. Si se presiona el botón 'Aceptar' o se cierra el formulario, el proceso continuará normalmente ejecutando las instrucciones que se encuentren a continuación: Ejemplo 1 y 2:

'..... instrucciones previas al control MsgBox "Faltan datos en campo 'Vendedor'", vbCritical, "Atención"

'.... continua la rutina

Page 14: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 14

En cambio en el tercer y cuarto ejemplo, la acción a seguir dependerá del botón presionado por el usuario, es decir que se ejecutarán las instrucciones dependiendo del valor que tomen las variables 'respuesta' y 'opcion'. Ejemplo 3 y 4:

'... instrucciones previas Dim respuesta respuesta = MsgBox("La acción solicitada demorará varios minutos" & Chr(10) & "¿Desea

continuar?", vbQuestion + vbYesNo, "Confirmar")

If respuesta = vbYes Then

'muestra el valor que toma la variable según el botón presionado MsgBox respuesta '.... otras instrucciones continuando con el proceso Else

'muestra el valor que toma la variable según el botón presionado MsgBox respuesta 'cancela el proceso Exit Sub End If

Nota 1: la variable 'respuesta' devolverá un valor según la siguiente tabla:

Constante Descripción Valor

vbOK Aceptar 1

vbCancel Cancelar 2

vbAbort Anular 3

vbRetry Reintentar 4

vbIgnore Ignorar 5

vbYes Sí 6

vbNo No 7

En el ejemplo anterior, podemos utilizar el valor en lugar de la constante en la instrucción de comparación: If respuesta = 6 Then

Nota 2: Observar el argumento 'Prompt' o cadena de texto a mostrar. Se utilizó la función CHR(10) para realizar un avance de línea. Es también posible encontrar en otros ejemplos, el uso de la función CHR(13) logrando similar resultado.

2.6. MSGBOX CON BOTONES PERSONALIZADOS

En el tema anterior vimos una tabla con los posibles valores correspondientes a cada botón. Ahora veremos cómo personalizar esos botones para que nos muestren otro texto, en lugar de los predeterminados, y para programarlos nos basaremos justamente en el valor devuelto según su ubicación

Sintaxis de la función MsgBox: MsgBox(prompt[, buttons][, title][, helpfile, context])

Page 15: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 15

Imágenes de algunos de los temas desarrollados en el manual

Uso de Frame, OptionButton y CheckBox Uso de forms con contraseñas Todo p/Combos y Listas

MsgBox personalizados

Uso de botones con imágenes Uso de controles animados

Uso de controles especiales:

Page 16: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 16

Imágenes de algunos de los formularios desarrollados en este manual

Formulario de Ingreso Altas, Bajas y Cambios a una base de datos

Formulario mostrando tablas o gráficos Formulario de Ayuda o Instrucciones

Formulario con imágenes

Formulario en hoja Excel

Page 17: DM_Forms_2010

Manual de Formularios Excel (2007-2010)

© <2012> Elsa M.Meyer (Elsamatilde) Página 17

‘--------------------------------------------FIN DE LA DEMO MANUAL FORMULARIOS EXCEL -------------------------------