Herramientas en Excel

Aprende Haciendo: Agenda en Excel que te recuerda los eventos pendientes (2 de 2)

Raymundo Ycaza
#Aprende Haciendo#Plantillas#Serie0001#Series#馃 Automatizaci贸n con Excel

[resumen]驴Est谩s preparad@ para continuar con nuestra Agenda en Excel, con aviso de eventos? Entonces comencemos que esto est谩 para un buen rato.[/resumen]

驴Qu茅 nos falta para terminar nuestra Agenda en Excel?

Ya en el art铆culo anterior, vimos c贸mo sentar las bases de nuestra agenda y tenemos casi toda la estructura para darle los toques finales. Con esto ya tuviste una buena pr谩ctica si est谩s reci茅n comenzando con Excel o te est谩s re-encontrando con 茅l.

Lo que haremos ahora es darle la funcionalidad de la que ya hablamos en el n煤mero anterior, as铆 que comenzaremos calentando con las fechas.

[pasos paso=鈥6鈥漖Terminar con los c谩lculos de las fechas.[/pasos]

En realidad nos falta poca cosa. Lo 煤nico que vamos a hacer, es utilizar una sencilla f贸rmula que coloque en la fecha de inicio de cada tarea, la fecha final de la anterior (Porque despu茅s de cada tarea, nos dedicamos a una nueva)

Entonces, la s煤per-f贸rmula que utilizaremos ser谩 simplemente el signo igual ( = )

En la fecha hora inicio escribes el igual y seleccionas la fecha hora final de la tarea anterior (similar a como hicimos con la fecha hora de inicio en la primera fila)

Agenda en Excel

Ver谩s que cuando presiones la tecla 鈥淓nter鈥, aparecer谩 la misma fecha hora.

Lo 煤nico que tendr谩s que hacer a partir de aqu铆, ser谩 copiar la f贸rmula y pegarla hasta abajo, hasta la 煤ltima fila. Te deber谩 quedar as铆:

Agenda en Excel

Uuuuh鈥 隆qu茅 feo!

No te preocupes. Recuerda que en la columna 鈥淗ora final鈥 tienes tambi茅n otra f贸rmula que hicimos en el cap铆tulo anterior. Solo copia y pega tambi茅n esa f贸rmula hacia abajo y ver谩s que te debe quedar as铆:

Agenda en Excel

[pasos paso=鈥7鈥漖Numerar las filas de nuestro itinerario.[/pasos]

Este paso es muy sencillo. Simplemente nos interesa colocar un n煤mero en cada fila, dentro de la columna marcada como 鈥#鈥, para darle una apariencia de lista ordenada.

Como son varias l铆neas, aqu铆 te aprovechar谩s de una caracter铆stica de Excel con las listas. As铆 que escribe los tres primeros n煤meros, as铆:

Agenda en Excel

Y para completar tu listado, simplemente vas a 鈥渟ombrear鈥 esos tres n煤meros y te colocar谩s sobre la esquina inferior derecha de esa selecci贸n. Ver谩s que el cursor se transforma en una cruz negra.

Justo en ese momento, haz clic 隆y no lo sueltes!

Ahora que tienes al pez, vas a arrastrar el rat贸n suavemente hacia abajo, hasta que llegues a la 煤ltima fila. Ver谩s como Excel autom谩ticamente ha continuado la secuencia y te has ahorrado escribir t煤 mismo los n煤meros.

En esta animaci贸n te muestro c贸mo se hace:

Agenda en Excel

Sencillo y muy 煤til 驴no crees?

Ahora, pasemos a otra cosa.

[pasos paso=鈥7鈥漖Tachar las tareas terminadas.[/pasos]

Y bien, para dar ese efecto de tachado que har铆amos en una lista de control hecha 鈥渁 mano鈥, con Excel tendr铆amos que hacer lo siguiente:

1.- Seleccionar la celda o las celdas que queremos 鈥渢achar鈥.

2.- Presiona el atajo CTRL + 1 para que aparezca el cuadro de di谩logo 鈥淔ormato de Celdas鈥.

3.- Selecciona la pesta帽a 鈥淔uente鈥.

4.- Elige el efecto 鈥淭achado鈥.

Si sigues los pasos que te indiqu茅 y te muestro en la siguiente figura, deber铆as de lograr tu objetivo.

Agenda en Excel

Y el resultado ser铆a el siguiente:

Agenda en Excel

Y estos pasos los tendr铆as que repetir por cada tarea finalizada.

隆M谩s que aburrido! Lo se.

Pero nos vamos a aprovechar del formato condicional para poder hacer este proceso son un solo clic. De manera que se comporte como una lista de control en la que marcas con un visto y autom谩ticamente se tachar谩 la tarea.

El secreto del truco, parte #2

Veamos:

Primero, vas a seleccionar toda el 谩rea amarilla, que es donde estar谩n las tareas. Una vez que lo tengas 鈥渟ombreado鈥, te diriges a la pesta帽a 鈥淚nicio鈥 y presionas sobre el bot贸n 鈥淔ormato Condicional鈥.

En el men煤 que se abre, selecciona 鈥淣ueva Regla鈥.

Agenda en Excel

Y en el cuadro que aparece, selecciona la opci贸n 鈥淯tilice una f贸rmula que determine las celdas para aplicar formato鈥.

Agenda en Excel

Ahora llegamos al punto donde volveremos a usar f贸rmulas.

Aqu铆 vamos a hacer uso de los rangos para darle las instrucciones a Excel.

En el cuadro que tienes para escribir, vas a colocar la siguiente f贸rmula:

Agenda en Excel

Si lees la instrucci贸n, notar谩s que si la evaluaci贸n de la f贸rmula que escribas ah铆, es verdadera, entonces se ejecutar谩 el formato que le apliques a las celdas, usando el bot贸n que est谩 a la derecha, llamado 鈥淔ormato鈥︹

Yo he utilizado la funci贸n SI, para evaluar si el valor de la celda H10 es verdadero, entonces mi funci贸n devuelve verdadero (-1), en caso contrario, devuelve falso (un cero)

驴Recuerdas que en la lecci贸n anterior vinculamos las cajas de verificaci贸n, cada una con una celda? Pues esta era la raz贸n:

Si una caja de verificaci贸n est谩 vinculada con una celda, cada vez que la marques dicha celda tomar谩 el valor de 鈥榲erdadero鈥. Y por el contrario, si le quitas la marca, tomar谩 el valor de 鈥榝also鈥.

驴Ya le vas viendo sentido?

Pero f铆jate que utilic茅 un signo de d贸lar delante de la H y no delante del 10, esto es porque estoy jugando con las referencias absolutas y relativas, a mi conveniencia. En palabras cortas, quiero que se desplacen las filas pero no las columnas.

Si pinchas en el bot贸n 鈥淔ormato鈥︹ aparecer谩 de nuevo el cuadro de di谩logo 鈥淔ormato de Celdas鈥. Aqu铆 har谩s lo mismo que hiciste anteriormente, es decir, elegir la opci贸n 鈥淭achado鈥.

En la imagen anterior, yo ya hice ese paso y por eso la vista previa te muestra las letras tachadas.

Ahora solo presionas el bot贸n de aceptar y pasamos a hacer las pruebas.

Agenda en Excel

驴Ves lo f谩cil que es?

Con este sencillo truco ya le dimos una buena funcionalidad adicional a nuestra agenda.

Pasemos al siguiente paso.

[pasos paso=鈥8鈥漖Resaltar las Tareas Expiradas.[/pasos]

Con tantas tareas y tan poco tiempo disponible, nos interesa saber d贸nde estamos parados o, lo que es lo mismo, saber c贸mo va nuestra planificaci贸n del d铆a.

驴No lo crees?

Entonces, una buena forma de orientarnos, es saber cu谩les son las tareas que ya expiraron. 隆Se me est谩 acabando el d铆a!

驴C贸mo lo logramos?

Nuevamente, con el formato condicional.

Vamos a ver:

Primero, selecciona o 鈥渟ombrea鈥 toda el 谩rea amarilla de tu agenda y vete de nuevo a 鈥淔ormato Condicional鈥 y luego en 鈥淣ueva Regla鈥 tal y como lo hicimos ya hace un rato, en el paso anterior.

La f贸rmula que he usado en esta ocasi贸n, es la siguiente:

Agenda en Excel

Nuevamente he utilizado la funci贸n SI en la regla del formato condicional.

En cristiano, esto significa que si la celda E10 (es decir, la columna de la hora de inicio) es menor o igual a la fecha / hora actual, entonces la funci贸n devuelve verdadero, en caso contrario, devuelve falso.

Por supuesto, cualquier tarea cuya fecha / hora de inicio sea igual a la fecha / hora actual (o mayor) significa que ya se pas贸 la hora de iniciarla y por ende, como que estamos atrasados con ella.

Finalmente, presionas sobre el bot贸n 鈥淔ormato鈥︹ y eliges un estilo, el que t煤 veas m谩s apropiado para una tarea atrasada. En mi caso us茅 un rojo suave y le puse las letras en negrita, como ves en la imagen.

驴El resultado?

Si una tarea ha alcanzado su fecha de inicio, de acuerdo al reloj, se marcar谩 con el estilo que le indicamos, as铆:

Agenda en Excel

隆Fascinante! 驴Qu茅 opinas?

[pasos paso=鈥9鈥漖Avisar de las Tareas Pr贸ximas.[/pasos]

隆Vaya desaf铆o!

驴C贸mo avisamos de una tarea pendiente en Excel? 驴En qu茅 estaba pensando yo?

Guarda tu archivo como un xlsm.

Veamos, seguramente eso se hace con macros. As铆 que ahora mismo vas a guardar tu archivo con extensi贸n xlsm, si no lo has hecho ya. Solo presiona la tecla F12 y en tipo de archivo, elige 鈥淟ibro de Excel habilitado para macros鈥.

Agenda en Excel

Ahora, pensemos: Necesito revisar cada cierto tiempo la fecha / hora de cada 铆tem de nuestro listado, para poder verificar si alguno ya est谩 cerca a cumplirse su tiempo.

驴Pero c贸mo lo hacemos en Excel?

Vamos a usar un ejemplo que ya publiqu茅 anteriormente sobre c贸mo repetir una macro cada cierto tiempo.

As铆, una vez que ya has le铆do el ejemplo del enlace anterior, ya puedes comprender el c贸digo que usar茅 a continuaci贸n (es muy parecido al usado en la entrada de ejemplo)

Option Explicit

Dim Tiempo As Variant Dim ejecutando As Boolean

Sub programarMacro() Tiempo = Now + TimeValue(鈥00:00:15鈥) Application.OnTime Tiempo, 鈥渃onsultarTarea鈥, , True End Sub

Sub consultarTarea() MsgBox 鈥 Hola鈥 Call programarMacro End Sub

Sub detenerReloj() ejecutando = False Application.OnTime Tiempo, 鈥渃onsultarTarea鈥, , False End Sub

Sub iniciarReloj() ejecutando = True Call programarMacro End Sub

Si ejecutas la macro 鈥渋niciarReloj()鈥 ver谩s c贸mo, cada 15 segundos, se muestra el mensaje 鈥淗ola鈥.

Lo que vamos a hacer ahora, es que en lugar de simplemente decir 鈥淗ola鈥, ahora vamos a revisar si existe alguna tarea que ya est茅 pr贸xima a expirar.

驴Y cu谩nto es pr贸xima?

Digamos que una tarea pr贸xima, es aquella que est茅 a diez minutos de expirar. 驴Te parece?

Si t煤 quieres establecer otro tiempo, puedes hacerlo sin problema.

En este c贸digo, he adaptado la macro 鈥渃onsultarTarea鈥 para que revise todas las fechas en la columna 鈥淗ora de inicio鈥.

Con el bucle While, estoy haciendo la revisi贸n y utilizo la funci贸n DateDiff para obtener la diferencia en minutos. Si est谩 a diez minutos de expirar, entonces muestra un mensaje acorde:

Option Explicit

Dim Tiempo As Variant Dim ejecutando As Boolean

Sub programarMacro() Tiempo = Now + TimeValue(鈥00:01:00鈥) Application.OnTime Tiempo, 鈥渃onsultarTarea鈥, , True End Sub

Sub consultarTarea() Application.ScreenUpdating = False Range(鈥淗oja1!E10鈥).Select While ActiveCell.Value <> "" If (DateDiff(鈥渘鈥, ActiveCell.Value, Now()) = -10) Then MsgBox 鈥淟a tarea 鈥 & ActiveCell.Offset(0, -1).Value & 鈥 est谩 pr贸xima a expirar.鈥, vbOKCancel + vbInformation GoTo Salir End If ActiveCell.Offset(1, 0).Select Wend Salir: Range(鈥淗oja1!C9鈥).Select Call programarMacro Application.ScreenUpdating = True End Sub

Sub detenerReloj() ejecutando = False Application.OnTime Tiempo, 鈥渃onsultarTarea鈥, , False End Sub

Sub iniciarReloj() ejecutando = True Call programarMacro End Sub

No olvides insertar un m贸dulo primero y en 茅l, vas a pegar el c贸digo anterior.

Pero鈥 No sucede nada. 驴Por qu茅?

Porque tenemos que lanzar la funci贸n 鈥渋niciarReloj鈥.

Para hacer esto, nos podemos ayudar del evento聽Workbook_Open.

驴C贸mo es que funciona esto?

Para que comprendas c贸mo trabaja el evento Workbook_Open, 茅chale un ojo a esta entrada.

驴Est谩s list@?

隆Perfecto! Ahora vamos a ver c贸mo quedar铆a nuestro c贸digo en el evento Workbook_Open:

Option Explicit

Private Sub Workbook_Open() iniciarReloj End Sub

Una vez que has colocado este c贸digo, solo debes guardar el archivo y lo cierras. Al abrirlo, ver谩s c贸mo cada minuto se ejecuta la macro y, si hay una tarea que est谩 a diez minutos de Expirar, se mostrar谩 el siguiente mensaje:

Agenda en Excel

隆Lo logramos!

Ser铆a interesante adem谩s poder reproducir un sonido, etc. Pero eso ya queda para ti o lo veremos en otro tutorial.

Sigamos que se nos acaba el tiempo.

[pasos paso=鈥10鈥漖Calcular el Cumplimiento del d铆a.[/pasos]

Como 煤ltimo paso, vamos a calcular el porcentaje de cumplimiento. Solo como un dato curioso adicional o por si eres de los que lleva todo a los n煤meros :D

Primero, vas a seleccionar una celda, por ejemplo, la C7.

En ella escribir谩s esta f贸rmula:

=CONTAR.SI(H10:H30,VERDADERO)/CONTARA(F10:F30)

Revisemos r谩pidamente de qu茅 se trata.

Primero estoy usando la funci贸n CONTAR.SI para contar todas aquellas celdas en el rango H10:H30 que tienen el valor de VERDADERO. Es decir, solo aquellas celdas que hemos marcado con un visto.

Con esto, lo que logramos es contar cu谩ntas filas tachadas tenemos.

La segunda parte, hace uso de la funci贸n CONTARA, en la columna 鈥淒uraci贸n en minutos鈥, para saber cu谩ntas tareas tienen asignadas un tiempo o, lo que es lo mismo, cu谩ntas tareas en total tenemos.

El s铆mbolo de divisi贸n 鈥 / 鈥, hace precisamente eso, dividir el resultado de la primera parte, entre la segunda y con eso tenemos el tanto por ciento de las tareas terminadas.

Simplemente dale un formato de porcentaje a la celda C7 y habr谩s finalizado.

A mi me qued贸 as铆:

Agenda en Excel

驴C贸mo te qued贸 a ti?

Y eso ha sido todo.

Tu agenda ha quedado terminada. 隆S铆 que nos ha costado!

Ahora que ya has culminado con este curso express de Excel en el que has practicado con las herramientas m谩s utilizadas de las que dispones en esta aplicaci贸n, 驴qu茅 me puedes decir sobre lo aprendido?

Si te ha gustado el tutorial, d茅jame tus comentarios y ay煤dame a compartirlo en las redes sociales para que m谩s personas tengan acceso a 茅l. No olvides que la pr谩ctica es esencial en todo aquello en lo que quieras mejorar, as铆 que 隆a darle duro!

Descarga el archivo terminado.

Sigue las instrucciones para descargarte el archivo terminado. 隆Es gratis!

Haz clic para descargar el archivo.

Nos vemos en la siguiente entrega.

Espero que te resulte de utilidad este ejemplo y que pongas en pr谩ctica todas y cada una de las lecciones que est谩n incluidas en este paso a paso, ver谩s c贸mo se te van grabando el eje y el maneje de cada una de las funciones, ahora que est谩s realizando tu propio proyecto desde cero en Excel.

隆Nos vemos!

[firma]

鈫 Regresar al Blog