Excel - VBA - Creando un recordatorio

Excel es a menudo la herramienta de elección para manipular datos, generar informes y gráficos a partir de diferentes tipos de datos. Sin embargo, también se puede usar Excel para hacer otras cosas interesantes, como crear un recordatorio . Esto se puede hacer utilizando el marco VBA. Para crear un recordatorio, se debe escribir un código VBA personalizado que utilice algunas de las funcionalidades incorporadas . Sin embargo, el código debe ejecutarse manualmente en la primera instancia y continuará ejecutándose para las siguientes iteraciones siempre que el libro esté abierto. Si el usuario no quiere ejecutar el código manualmente, debe definir una rutina personalizada llamada workbook_open .

Problema

Quiero recibir un cuadro de mensaje de Recordatorio automáticamente, de acuerdo con la fecha y la hora en una hoja de cálculo de Excel.

¿Se puede hacer esto en VBA?

Solución

 ---A B C ---------------------- D 1- Fecha ------- Hora ------ Tarea ------------------- Recordatorio 2- 13/3/2010 - 11:10 ---- Habitación limpia -------------- X 3- 13/3/2010 - 11:10 ---- Coche limpio ------------ ----- X 

X: indica que este es un recordatorio activo. Quitar x para deshabilitar ese recordatorio

En VBE (ALT + F11) y en la ventana del explorador de proyectos, haga doble clic en "ThisWorkbook". Pega el código de abajo.

 Recordatorio de Const privado Como entero = 1 Recordatorio privadoSiguiente como Variante Public Sub remindMe () currentTime = Time nextMin = CDate (Formato (Time + 1 / (24 * 60), "hh: mm")) myrows = Range ("A1") .CurrentRegion.Rows.Count para thisrow = 2 To myrows If (Cells (thisrow, "D") = "X") Luego thistime = CDate (CDate (Cells (thisrow, "A")) + Cells (thisrow, "B ")) If ((thistime> = Now) And (thistime <= Now + 1 * recordatorio / (24 * 60))) Entonces task = task & vbCrLf & Cells (thisrow, " C ") &" at "& Format (Celdas (thisrow, "B"), "hh: mm") End If End If Next If (task "") Entonces MsgBox task reminderNext = Now + TimeSerial (0, recordatorio, 0) Application.OnTime reminderNext, "ThisWorkbook. remindMe ",, True End Sub 

También necesitas entender algunas cosas:

  • El código debe iniciarse manualmente la primera vez. Después de eso, hasta que cierre el libro, seguirá revisando el programa como lo definió en el libro.
  • Una vez que cierre el libro y lo reinicie, nuevamente tendrá que iniciar el código una vez más.
  • Para iniciar el código, debe ir a Macro, y allí encontrará un botón Ejecutar en la barra de menú.
  • Si no desea ejecutar el código manualmente, y desea que el código se ejecute solo cada vez que inicie el libro, debe definir una rutina llamada Workbook_Open ()
  • Entonces, una vez más, si desea ejecutar el código manualmente, haga exactamente lo que hizo antes y si desea que el código se ejecute solo cuando se abra el libro, deberá agregar uno más (aunque mantiene el código antiguo ). El código sería:

 Private Sub Workbook_Open () Call remindMe End Sub 

Nota

Gracias a rizvisa1 por este consejo en el foro.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos