infoaplicadablog.files.wordpress.com€¦  · web viewla variable “z” jugará el papel de...

14
SEBASTIAN TEJADA MORA DANIELA GONZÁLEZ PIÑEROS TALLER - MACROS Se descomprime el archivo Desencriptar: Se habilitan los macros Se da doble click en el archivo “EDC Encryption Tool” y se activará el complemento EDC Luego va a preguntar que desea hacer: se selecciona desencriptar archivo de texto Se abre una nueva ventana en donde se selecciona el archivo “EXAMEN5” Pide la contraseña que es la que hallamos en el acertijo: “GENIO” Y ahora el archivo de texto queda desencriptado, se selecciona todo con “Ctrl + E” se copia con “Ctrl +C” y se pega en una

Upload: others

Post on 01-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

SEBASTIAN TEJADA MORA

DANIELA GONZÁLEZ PIÑEROS

TALLER - MACROS

Se descomprime el archivo

Desencriptar:

· Se habilitan los macros

· Se da doble click en el archivo “EDC Encryption Tool” y se activará el complemento EDC

· Luego va a preguntar que desea hacer: se selecciona desencriptar archivo de texto

· Se abre una nueva ventana en donde se selecciona el archivo “EXAMEN5”

· Pide la contraseña que es la que hallamos en el acertijo: “GENIO”

· Y ahora el archivo de texto queda desencriptado, se selecciona todo con “Ctrl + E” se copia con “Ctrl +C” y se pega en una nueva hoja del archivo “caso1” que se llamará según las instrucciones “CORRECCION” y se pega con “Ctrl + V”

Luego, con los datos ya en la hoja “CORRECION” iniciamos el proceso de normalización de la base:

1) Usando la función “Buscar y Reemplazar” arreglamos en la columna de “SERVICIO” la palabra “CIRUJIA” por “CIRUGIA”

2) Ahora, notamos que en fechas de ingreso, hay años que datan después del 2003. Estos hay que corregirlos y reemplazar ese año con el que aparecen por el año 2000. Para realizar este proceso, utilizamos la función “Si”, y la función “sustituir” y la función “Derecha” de la siguiente forma:

Lo que hace esta combinación de funciones es, arrojarnos los últimos cuatro números de la celda “FECHAINICIO”. Con la función “Si” hacemos la comparación para determinar cuáles son los mayores a 2003. Estos valores los cambiamos por un “2000” con ayuda de la función “SUSTITUIR”. Finalmente, los valores menores a “2003” se dejan como estaban originalmente.

3) Para poner el formato de fecha en la columna creada en el punto anterior. Primero agregamos una nueva columna y aplicamos la siguiente fórmula: “=SI(LARGO(H2)=8;H2;"0"&H2)” esto le agrega el cero inicial a los días de una sola cifra para poderles aplicar el formato de fecha

Se selecciona: De ancho fijo / siguiente / siguiente / formato de fecha (DMA) / finalizar

4) Para eliminar los datos duplicados seleccionamos todos los datos desde la celda “B2” y nos dirigimos a la pestaña “DATOS” y al botón, “Quitar duplicados” y “aceptar”. Para finalmente quedar con 2300 datos.

SOLUCION DEL TALLER

1) Para organizar los apellidos decidimos hacerlo por medio de una macros por teclado de la siguiente forma:

· Creamos una columna nueva llamada Apellido Real.

· Luego seleccionamos MACROS con referencias relativas

· Para posteriormente empezar a grabar la MACROS. Iniciamos en la celda E2, la primera celda de la nueva columna, es decir, la columna “Apellido Real” correspondiente al primer nombre. Luego copiamos el apellido de la persona número diez y lo pegamos en “Apellido Real” de la persona número uno. Luego copiamos el apellido de la persona número nueve y lo pegamos en “Apellido Real” de la persona en la segunda posición y realizamos este mismo proceso hasta llenar los primeros diez “Apellidos Reales”, según las instrucciones dadas. Para finalizar parados en la celda E12 correspondiente a la persona número once. Ahí finalizamos la grabación de la MACROS. Ahora nos dirigimos a configurar la Macro para crear un ciclo con el comando que hicimos.

Para esto le colocamos un “For x=1 to 230” y antes de terminar la Macros un “Next x”

Además creamos una columna llamada “Nombre Completo” para unir el nombre con el apellido real.

2) CONTAR CARACTERES: Para contar los caracteres de la hoja usamos la siguiente programación:

El comando “sheets().Select” lo que hace es pararnos en la hoja que tenga el nombre que coloquemos dentro de la función. Para descubrir esta función lo que hicimos fue grabar una macros por teclado en donde nos parábamos en una celda de cualquier hoja y cambiamos de hoja. Luego abrimos el Visual Basic. Al ver el Visual Basic de la macros, vimos que se usa ese comando. Así:

Luego usamos dos ciclos, uno dentro de otro, para movernos a lo largo de la hoja. El primer ciclo (For F) nos permite movernos en las filas, escogimos 30000 ya que es un poco más de la filas hasta donde se encuentra el último dato. Y el segundo ciclo (For C) nos permite movernos en columnas. Vemos que solo hay datos hasta la 4 columna, pero aun así pusimos 30 por si se incluyen nuevos datos.

La variable “Z” jugará el papel de acumulador, lo que hará es almacenar el valor de cada celda además de mantener el que ya tenía, así permite unir todos los valores del rango seleccionado bajo la variable “Z”.

Finalmente usamos el comando “LEND()” el cual descubrimos de la misma forma que el comando “Sheets()”. Lo que hace este comando es lo mismo que la función “LARGO”. Da como salida, el número de caracteres de una celda. En este caso, dará como resultado la cantidad de caracteres de la variable “Z”, nuestra acumuladora. (LEND (Z)). Para que sea visible al usuario lo acompañamos con el comando “MSGBOX()”

3) TABLA P.3: En este punto nos pide mostrar una tabla por hospital y por día de la semana a frecuencia de pacientes Para este punto basta una tabla dinámica.

Para ello creamos una columna en la base de datos llamad “Día de la semana de ingreso” en la cual usamos la función “TEXTO” acompañado de “DDDD” la cual muestra el día de la semana según la fecha que escojamos, en este caso la “Fecha de ingreso real” columna O.

Luego vamos a la opción “insertar” a la pestaña “tabla dinámica” y colocamos los ítems en el siguiente orden:

En las columnas el día de la semana, en las filas el nombre del hospital y para saber la frecuencia ponernos la cuenta de los nombres en valores.

5) TABLAS DE MULTIPLICAR: En este punto se nos pide mostrar la cantidad de tablas de multiplicar que el usuario desee. Para ello usamos el siguiente código:

Aquí de nuevo usamos la función “Sheets(“TABLAS”).select” para dirigir al usuario a la hoja donde queremos mostrar las tablas.

Iniciamos con un condicional para poder limitar la tabla a los números positivos, si no se introduce se pedirá de nuevo que introduzca un número diferente. Se pedirá el numero en las dos ocasiones por medio de la función “Inputbox ()” la cual permite mostrar un mensaje y a la vez ser el receptor de algún dato, este dato quedará guardado en la variable que le asignemos, en este caso es: X.

Dentro del condicional (es decir, si introduce un número mayor o igual a cero). Creamos dos ciclos para podernos mover en filas y en columnas, esto se necesita ya que en las filas se muestran las multiplicaciones de un mismo número hasta 200 y las columnas variara el número hasta llegar al número requerido por el usuario.

En este caso la “Z” llevará la cuenta de las columnas y estas irán hasta “X” que es el número dado por el usuarios, así no se mostrarán ni más ni menos tablas de las solicitadas. Por otro lado la “Y” manejara las filas las cuales irán hasta 200 ya que es lo que nos pide el ejercicio. A su vez, aprovechamos estas variables para mostrar las tablas en su respectiva celda.

Finalmente colocamos la expresión “CELLS(1,X+1).Select” Para ubicar al usuario una columna al frente de la columna de última tabla que el pidió. Esta expresión es opcional.

6) FRASE AL REVES:

En este punto se nos pide que el usuario introduzca una frase y la mostremos al revés. Aquí usamos el siguiente código:

En este punto usamos la función “ Inputbox ()” la cual permite mostrar un mensaje y a la vez ser el receptor de algún dato, este dato quedará guardado en la variable que le asignemos, en este caso es: X.

Aquí usamos un ciclo el cual utilizamos para separar los caracteres de la frase uno por uno. En este caso usamos la función “Len()” la cual nos sirve para sacar el largo (cantidad de caracteres) de la variable “X”.

Luego usamos la variable “Z” la cual hace las veces de recipiente o de contador en el cual introduciremos los caracteres de la variable X en el orden que queramos. Además usamos la función “Mid()” que hace las veces de la función “Extrae”. Esta función la descubrimos usando la macros por teclado así:

Con esta prueba podemos ver el funcionamiento de la función “MID()”. Dentro de la función primero colocamos la X que es donde está la frase, luego necesitamos la ubicación del carácter que queremos extraer y que metermos en Z. Como queremos voltear la palabra iniciaremos del último carácter al primero. Para ello al largo de la frase más uno, le restamos el número de la variable L que cambió con el ciclo. Se le suma uno para poder coger el último carácter y para evitar terminar generando un 0 en esta función.

Así al extraer cada carácter y almacenarlo en Z desde el último carácter hasta el primero podemos, mediante la función MSGBOX(), mostrarle al usuario lo almacenado en Z.

7) IMPARES:

De nuevo usamos el comando “SHEETS()” para ubicar al usuario en la hoja que deseamos, en este caso la llamada “IMPARES”. En este ejercicio usamos dos ciclos, el exterior para movernos en las filas y el interior para desarrollar la serie y determinar si el número en la celda ubicada es par o impar.

El primer ciclo, controlado por la variable X va hasta 25250 ya que esa es la fila en la que encontramos el último dato en la columna uno. Usamos la variable A para contener el valor de la celda. Este valor lo ponemos en el ciclo de N el cual, con ayuda de un condicional ayudará a determinar si A es par por medio de la serie 2n. Básicamente los comando dicen, si el valor es igual a 2n siendo n un numero entre 1 y 10 entonces esa celda se reemplaza su valor por un vacío si no se saldrá del ciclo N con el comando “EXIT FOR” y pasaría al siguiente X (fila).

Finalmente se espera que este borre los números pares de la columna 1 hasta la fila 25250 de la hoja “IMPARES”.

8) CAJERO AUTOMATICO:

En este punto nos piden hacer una macros que simule un cajero en donde se pida una clave la cual solo tendrá tres oportunidades para introducirla correctamente, si la introduce correctamente le pedirá que diga cuánto dinero desea sacar de un saldo de 1000000 y además mostrar el saldo final.

El código que usamos para esto es el siguiente:

Inicialmente vemos la función “MSGBOX ()” que se utiliza para mostrar en la pantalla al usuario lo que le deseemos mostrar. Esta función se usará en diferentes situaciones. El primer ciclo, dirigido por la I el cual va de 1 a tres es el que direccionara el intento de las claves. Luego nos encontramos la variable Y la cual almacenará la clave que introduzca el usuario. Con esta clave se abre un condicional que dice que si la clave es igual a 12345 (es decir, que la clave es la correcta) va a hacer algo y si no es esa se le pedirá que repita la clave.

Cuando se digita bien la clave se tiene dos opciones por lo tanto dos salidas por lo que será muy útil un condicional en donde el IF será una opción y el ELSE será la otra. Cuando sea mayor a 1000000 saldrá un mensaje que diga “SALDO INSUFICIENTE” si en menos o igual se mostrará un mensaje mostrando el saldo. Este saldo será 1000000 menos Z (que va a ser la variable que contenga la cantidad que se desea retirar)

9) ENCUESTA:

Para ordenar esta encuesta primero tuvimos que usar una macros por teclado organizando los datos que estaban en la primera columna organizándolos de a paquetes de a cinco. Así:

Donde P1 representa la primera pregunta, P2 la segunda y así sucesivamente. Además los números tienen la siguiente nomenclatura:

1= Pésimo

2= Malo

3= Regular

4= Bueno

5= Excelente

Al haber hecho dos o tres movimientos con el teclado detenemos la macros. Nos dirigimos a configurarla u le agregamos un ciclo para que se repita sola hasta finalizar las filas de datos (25250 datos).

Luego, con la base de datos resultante nos piden por pregunta hallar el valor absoluto y porcentual de las respuestas, por lo que cada pregunta merece su propia tabla dinámica en las cuales, en todas, ordenamos así los valores:

En filas la pregunta respectiva (P1,P2, etc.). En valores en todas las tablas colocamos el ítem “Personas” el cual se muestra como recuento, también el ítem de la pregunta respectiva (P1, P2, etc.) mostradas como porcentaje del total general.