El Contable Curioso

16 de marzo de 2013

Recordatorios en Excel en una hora determinada



Los que trabajamos diariamente con Excel tenemos un truco para que el programa nos devuelva un mensaje de cualquier cosa que necesitemos recordar a una hora que hayamos establecido y que se repita diariamente. En mi ejemplo vamos a establecer que de forma diaria a las 18:00 se nos recuerde que nuestro trabajo debe ser guardado y enviado por mail.



Lo primero que debemos hacer es abrir una hoja en blanco de Microsoft Excel. A continuación lanzaremos el editor de Visual Basic pulsando la combinación de teclas “Alt+F11” o bien en la pestaña de “Programador” encontraremos dentro del grupo “Código” el botón de “Visual Basic” que nos mostrará el Editor.
 
Si no tuvieramos visible la pestaña de programador y queremos que Excel nos la muestre cada vez que lo abramos tendremos que dirigirnos a Archivo/Opciones/Personalizar Cinta de Opciones. En el panelde la derecho podremos activar la opción para se muestre las opciones de Programador en la cinta de opciones.



Una vez abierto el Editor VBA, tendremos que localizar en el panel de la izquierda el Libro “PERSONAL.XLSB” la entrada que diga “ThisWorkbook”.

El libro de trabajo Personal es un libro especial que afecta a todos los otros que abramos o creemos en Excel. Por lo que introduciendo una macro en el mismo, se podrá utilizar desde cualquier archivo Excel que abramos.


En el caso de que no viesemos la hoja de trabajo PERSONAL.xlsb, existe un truco para forzar su aparición: Desde la cienta de opciones Programador accederemos al botón de grabar macro en el que seleccionaremos guardar macro en el  Libro de macros personal. A continuación pulsaremos sobre aceptar y detener la grabación de la macro. Si volvemos a abrir el Editor VBA del paso previo, tendremos disponible la Hoja Personal.

Abriremos automáticamente el libro Personal grabando una macro en él.


Hacemos doble clic sobre “ThisWorkBook” que depende directamente del libro Personal para que se nos abra una nueva ventana como la que aparece en la imagen:

No nos debe asustar la seria apariencia del EditorVBA


Desplegaremos las dos listas que aparecen en la parte superior y fijaremos los valores de “Workbook” y “Open” respectivamente.



Seguidamente, entre las dos líneas de código deberemos teclear otra en la que haremos referencia a la hora en el que se ejecutará la macro con el recordatorio. El código VBA a introducir es, como se ve en la imagen, el siguiente: Application.OnTime TimeValue("18:00:00"), "Anotacion"

Con esta línea le estamos diciendo que cada vez que sean las 18:00 se tiene que ejecutar una macro llamada "Anotacion".

 
Esta macro la he llamado “Anotacion” aunque puede tomar cualquier otro nombre que queramos. Para diseñar las ordenes a ejecutar en la macro “Anotacion”, deberemos sleccionar primero el libro de trabajo (“VBAProject (PERSONAL.XLSB)”) y hacer clic a continuación sobre Insertar y Módulo del menú contextual.



De forma parecida a como hemos visto antes, se nos abrirá un nuevo panel derecho, en este caso es un módulo totalmente en blanco. Deberemos introducir la instrucción “Sub” seguida del nombre de la macro del paso previo y de dos paréntesis (de apertura y cierre).
 

Luego presionaremos Enter para que nos escriba la instrucción de finalizar (“End Sub”). Entre ambas líneas de código, escribiremos las instrucciones que queremos que ejecute la macro denominada “Anotacion”. Como queremos que nos aparezca un mensaje en una ventana emergente, podemos escribir algo así: MsgBox "Es la hora de guardar tu trabajo y enviarlo por mail al jefe"

Nuestro código VBA es sumamente sencillo y a la vez efectivo para nuestro propósito.
 

Guardaremos los cambios y cerraremos Excel. Cuando lo volvamos a abrir y sea la hora que le hayamos indicado, nos aparecerá el siguiente mensaje: 






Este mensaje nos aparecerá de forma diaria a la hora que le hayamos indicado y siempre que tengamos abierto cualquier hoja de Excel.