ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Сreación de código para desarrollar macros y formularios para Excel


Enviado por   •  5 de Marzo de 2019  •  Resumen  •  1.262 Palabras (6 Páginas)  •  130 Visitas

Página 1 de 6

Reporte Excel Avanzado

Clase N° 13

1. Creación de formularios

Como dice la descripción de este reporte, en esta clase se vio con más detalle la creación de código para desarrollar macros y formularios para Excel. En la clase anterior, se dejó listo el diseño de un formulario que sirviera para emular al comando nativo Tabla de datos. También se grabó su aplicación sobre un rango determinado y utilizando como argumento a dos celdas fijas, es decir, cada vez que se ejecutaba la macro, de iba a realizar la misma operación, sin la opción de variar los datos de entrada. En esta ocasión, se hará que el usuario pueda interactuar a través de dicho formulario.

El código creado por el grabador de macros es con el que se ve en la imagen. Allí se aprecia que sobre el objeto selección se aplica el método tabla con parámetros dados por celdas fijas (B8 y B7).

El código corresponde a una macro, toda vez que parte con la instrucción “Sub[nombre_de macro]()” y termina con End Sub.

Para darle vida al formulario, se copiarán estas líneas de código al botón aceptar. Cabe recordar que en la clase anterior se llenó de código el botón Cancelar para poder cerrar la ventana.

Se aprecia que el código es el mismo, ahora es un Private Sub del evento clic en el botón Aceptar.

Lo siguiente es cambiar de alguna forma el problema de la referencia constante, para que el usuario pueda ingresarla a través del formulario. Para eso es necesario reemplazar los rangos de los atributos del método Table con los datos de los RefEdit del formulario para hacer que ambos objetos, el RefEdit y el botón Aceptar conversen entre sí.

RefEdit1 y RefEdit2 son los objetos del formulario que solicitan ingresar las referencias para las variables de fil y columna respectivamente. Estos deben ser citados en el código, particularmente, se debe citar el valor que contienen, esto se realiza con la instrucción Objeto. Atributo, siendo en este caso el objeto el refedit y el atributo su valor o Value.

Hacho esto, en el formulario se pueden ingresar las referencias manualmente y se mostrará de la siguiente manera:

Cabe destacar que hay una diferencia entre este formulario y el nativo en cuando a la forma en que se muestran los datos. En el primero se ve la referencia con mención de la hoja en que se encuentra mientras que en el nativo solo se muestra la información referente a la fila y columna.

Otra diferencia que se aprecia, es que al Aceptar se realiza la operación tal como se esperaba, pero no se cierra el formulario. En vez de eso sigue tal y como estaba hasta que se pulse sobre cerrar o cancelar. Es un problema de diseño que se resuelve fácilmente añadiendo líneas de código para esconder tal como se hizo con el botón cancelar. Esto posterior a las demás instrucciones

También se tiene el inconveniente de que, al abrir de nuevo el formulario, las casillas para introducir las referencias no son vacías, sino que contienen los valores de la operación anterior. Para solucionar esto, después de las instrucciones para realizar la operación, se debe acceder al valor de cada uno de los refedit y eliminar sus valores. Esto se hace fijándoles un valor vacío, ya sea con doble comilla o con la instrucción “empty”.

Con lo que se acaba de hacer, se desarrolló el formulario que se esperaba, sin algunos detalles que se contarán más adelante, pero capaz de cumplir con el objetivo esperado de cierta manera. Ahora se intentará utilizar el mismo formulario para otro tipo de problema. Se quiere que se peda utilizar para realizar tablas de una entrada, algo que se puede hacer con otro comando similar a Tabla de datos.

El problema es el siguiente. Acá la salida es de forma distinta: en la esquina superior derecha

...

Descargar como (para miembros actualizados) txt (7 Kb) pdf (40 Kb) docx (11 Kb)
Leer 5 páginas más »
Disponible sólo en Clubensayos.com