Funciona así
En thisworkbook pon esta macro, esto es para que al abrir el libro se ejecute la macro, en el evento open.
Private Sub Workbook_Open()
'Por.DAM. Incia alarma
Sheets("Hoja1").Range("AA1") = ""
Reloj
End Sub
Ahora crea un módulo y pon estas macros:
Sub Reloj()
'Por.Dam. Incia validación
If Range("AA1") = "" Then
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Range("Z" & i) = Date And Range("AA" & i) = "" Then
res = MsgBox("SE LE RECUERDA QUE HOY SE VENCE TÉRMINOS DE PROCESO: " & Range("A" & i) & vbCr & _
"TAREA REALIZADA: Presiona Si" & vbCr & _
"RECORDAR: Presiona No" & vbCr & _
"Si quieres Dentener la alarma para todos: Presiona Cancel", _
vbYesNoCancel + vbQuestion, "VALIDACIÓN DE FECHAS")
Select Case res
Case vbYes: Range("AA" & i) = "Realizada"
Case vbNo: Range("AA" & i) = ""
Case vbCancel
Range("AA1") = "Alarma detenida"
Exit Sub
End Select
End If
Next
Else
Exit Sub
End If
'actualizar el reloj con parámetros horas : minutos : segundos
Application.OnTime Now + TimeValue("00:00:45"), "reloj"
End Sub
Sub reiniciar_alarma()
'Por.DAM
Range("AA1") = ""
Reloj
End Sub
Sub Parar_Reloj()
'Por.DAM
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:01"), "reloj", False
End Sub
El mensaje te pone 3 botones, “Si” “No” y “Cancel”, si presionas “Si” entonces la tarea está terminada y te pondrá en la columna “AA” y la fila de ese ID la palabra “Realizada”, con esto identificamos que la tarea ya está realizada, para que a la siguiente vez ya no pregunte por esa tarea.
Si contestas “No” entonces a la siguiente vez preguntará nuevamente.
Y por último agregué esta opción, si contestas “Cancel”, la macro se detiene y escribe en la celda “AA1” la frase “Alarma detenida”
Si quieres iniciar nuevamente la alarma entra a VBa en thisworkbook y ejecuta la macro del evento open.