LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formularios en Microsoft Excel. 1) DEFINICIÓN Los formularios en Excel son un método para ingresar datos a nuestras hojas y son de mucha utilidad porque nos ayudan a evitar errores en la captura de información. Podemos comparar los formularios de Excel con los formularios impresos en papel. 2) TIPOS DE FORMULARIOS EN EXCEL Podemos crear tres tipos diferentes de formularios en Excel. 2.1 Formularios de datos A través de un formulario de datos podemos mostrar al usuario una sola fila de nuestra tabla de datos. En este formulario se puede realizar la edición de la información e inclusive crear un nuevo registro para la tabla. Excel puede generar automáticamente un formulario de datos para nuestras tablas. Un detalle importante es que si una celda contiene una fórmula no se podrá modificar dicha fórmula mediante el formulario sino que solamente se mostrará el resultado del cálculo sin poder editarlo. 2.2 Hoja de cálculo con controles de formulario o controles ActiveX Ya que las celdas de una hoja de Excel nos sirven para introducir información, podemos asemejar una hoja de Excel como un gran formulario. De esta manera, si agregamos controles de formulario a nuestra hoja podremos crear formularios de entrada de datos muy útiles. 1 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 Por ejemplo, podemos agregar a nuestra hoja un control de cuadro de lista para facilitar la selección de los elementos. De igual manera podemos agregar botones, cuadros combinados, casillas de verificación y otros controles más que nos ayudarán a crear formularios avanzados. 2.3 Formularios de usuario VBA (Visual Basic Application) Los formularios de usuario, también conocidos como UserForm, son cuadros de diálogo que hacen uso de controles ActiveX y que nos permiten solicitar información al usuario. Estos formularios son creados desde el Editor de Visual Basic y administrados desde código VBA (Visual Basic Application). Una vez que se crea un formulario de usuario se puede arrastrar y soltar los controles Active X que se mostrarán en el Cuadro de herramientas: 2 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 Los diferentes tipos de formularios en Excel nos ayudaran a obtener cierto grado de control sobre el ingreso de datos que otras personas puedan realizar sobre nuestras hojas de Excel. 3) EJEMPLO DE UN FORMULARIO DE DATOS Después de que se crea una tabla, pueden existir varios métodos para agregar nuevas filas a una tabla de Excel. La forma más directa de agregar una nueva fila es seleccionar la última celda de la tabla (celda inferior derecha) y oprimir la tecla Tabulador (TAB). Al hacer esto, Excel añadirá una nueva fila a la tabla en donde podremos introducir la información apropiada para el nuevo registro: 3 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 Pero existe tambien otra forma de agregar filas a una tabla de Excel y es utilizando un formulario de captura de datos. El comando Formulario no está incluido de manera predeterminada en la cinta de opciones por lo que es necesario agregarlo manualmente, para realizar esta operación, hacemos click en la flecha que se encuentra al extremo derecho de la barra de acceso rápido y seleccionamos la opción Más comandos. Se mostrará el cuadro de diálogo Opciones de Excel. En la lista “Comandos disponibles en” se selecciona la opción Todos los comandos y dentro de la lista se elige el comando Formulario. 4 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 Hacemos click en el botón Agregar y finalmente en el botón Aceptar para que el botón se muestre en la barra de acceso rápido. Ahora seleccionamos cualquiera de las celdas de la tabla y oprimiremos el botón Formulario y aparecerá un cuadro de diálogo con los nombres de las columnas de la tabla del lado izquierdo y con los valores para cada fila en los cuadros de texto junto a ellos. Para agregar un nuevo registro a la tabla se debe hacer click sobre el botón Nuevo. Se introduce la información del nuevo registro de la tabla y al finalizar se oprime el botón Cerrar y Excel colocará el nuevo registro al final de nuestra tabla. 5 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 4) EJEMPLO DE UN FORMULARIO DE USUARIO VBA (Visual Basic Application) Para este ejemplo se utilizará un formulario VBA para desarrollar una aplicación en Excel que realice la conversión de temperaturas entre grados Celsius y grados Fahrenheit. 4.1 Creación del formulario Un formulario de usuario VBA es un cuadro de diálogo donde se agregan diversos tipos de controles como botones de comando, cajas de texto, casillas de verificación, y otros controles más que son de gran utilidad para obtener la información de un usuario ya sea para procesar dicha información y devolver algún resultado o simplemente para poder almacenarla. Para iniciar nuestro ejemplo agregaremos un nuevo formulario de la siguiente manera. En la ficha Programador haremos click en el botón Visual Basic y se mostrará el Editor de VBA. Hacemos click derecho sobre VBA Project y seleccionamos la opción Insertar > UserForm: De inmediato en el panel principal se mostrará el formulario recién creado así como un pequeño cuadro de diálogo con el título Cuadro de herramientas el cual contiene todos los controles que podremos agregar al formulario. 6 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 El Cuadro de herramientas tiene un botón para cada tipo de control como etiqueta, cuadro de texto, cuadro combinado, cuadro de lista, casilla de verificación, botón de opción, etc. Para agregar un control al formulario es necesario hacer click en el botón correspondiente dentro del Cuadro de herramientas y posteriormente hacer click dentro del formulario. Otra manera de agregar un control al formulario es pulsar el botón del control y arrastrarlo sobre el formulario. 4.2 Agregar controles de formulario Para nuestro ejemplo necesitamos agregar una etiqueta, un cuadro de texto, un cuadro de lista y un botón de comando de manera que nuestro formulario quede de la siguiente manera: Para cambiar el texto de la etiqueta y del botón de comando debemos modificar la propiedad llamada Caption y dicha operación se realiza desde la ventana Propiedades. Si esta ventana no se muestra actualmente en el Editor de Visual Basic se la puede seleccionar desde el menú Ver o también se puede hacer click derecho sobre alguno de los controles y seleccionar la opción Propiedades lo cual mostrará la ventana: 7 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 Elegimos la propiedad Caption y al lado derecho ingresamos el valor de dicha propiedad para el control seleccionado. En la imagen anterior vimos las propiedades de la etiqueta llamada Label1 y por lo tanto ahora se ha colocado el texto Temperatura. Para hacer el cambio de esta propiedad para el botón de comando solo debes seleccionarlo de la lista desplegable que se encuentra en la parte superior de la misma ventana Propiedades. Al terminar el cambio de la propiedad Caption tendremos el formulario de la siguiente manera: En la imagen anterior también se puede observar que se ha cambiado el título del formulario, esto se puede realizar modificando también la propiedad Caption del formulario mismo. 4.3 Agregar opciones al cuadro de lista Un último cambio que se realizará a los controles es agregar los valores al cuadro de lista. Para nuestro ejemplo solo necesitamos agregar los valores Celsius y Fahrenheit pero no existe una propiedad del control que nos permita hacerlo sino que debemos utilizar el código VBA. Para especificar estas opciones debemos hacer doble click sobre el formulario y seleccionar el código para el procedimiento Initialize donde colocaremos las instrucciones necesarias para agregar las opciones, tal como se muestra en la siguiente imagen: 8 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 La instrucción AddItem es la que nos permite agregar un nuevo elemento al cuadro de lista y la instrucción ListIndex nos permite indicar el valor que estará seleccionado al cargarse el formulario y que será la opción Celsius ya que es la primera opción de la lista y por lo tanto tiene asociado el índice cero. 4.4 Código del botón de comando Finalmente, agregaremos un código VBA al botón de comando que será el encargado de realizar la conversión, para realizar esta operación solo se debe hacer doble click sobre el botón para mostrar la ventana de código asociada. El código que colocaremos en el procedimiento Click será el siguiente: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Private Sub CommandButton1_Click() 'Validar que se ha especificado una temperatura If TextBox1.Value = "" Then MsgBox "Debes especificar una temperatura" Exit Sub End If 'Si es Celsius convertir a Fahrenheit If ComboBox1.ListIndex = 0 Then temperatura = TextBox1.Value * 1.8 + 32 MsgBox temperatura & " Fahrenheit" 'Si es Fahrenheit convertir a Celsius Else temperatura = (TextBox1.Value - 32) * 5 / 9 MsgBox temperatura & " Celsius" End If End Sub La primera validación dentro del código verificará que el cuadro de texto no esté vacío en cuyo caso desplegará un mensaje solicitando ingresar una temperatura y posteriormente saldrá de la subrutina. La segunda validación es para saber si el cuadro de lista tiene seleccionado la opción “Celsius” (ComboBox1.ListIndex = 0), si es asi se realizará la conversión a grados Fahrenheit para posteriormente mostrar el resultado. 9 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 Por el contrario, si el cuadro de lista tiene seleccionada la opción Fahrenheit (Else) se hará la conversión a grados Celsius. Para probar el funcionamiento de nuestro formulario es suficiente con pulsar el botón Ejecutar que se encuentra en la barra de herramientas Estándar: Observen el comportamiento final del formulario: Ya que se ha terminado con la construcción del formulario y el código necesario para su funcionamiento, podemos dar un paso adicional para llamar el formulario desde una hoja de Excel. 4.5 Cargar el formulario de usuario VBA desde una hoja de Excel Para cargar un formulario desde una hoja de Excel será suficiente con agregar un botón de comando ActiveX desde la ficha Programador: 10 LABORATORIO Nº 5 – FORMULARIOS EN EXCEL CARRERA DE CONTADURIA PÚBLICA – CPA-506 Docente: Ph.D.(c) Victor Hugo Chavez Salazar – Gestión 2015 Al hacer doble click sobre el botón se mostrará el código asociado al evento Click del botón y luego debemos ingresar la siguiente instrucción: Con esto será suficiente para que al momento de pulsar el botón de la hoja de Excel se muestre el formulario de usuario VBA recién creado y podamos realizar la conversión de temperaturas entre grados Celsius y grados Fahrenheit. 11