Debes utilizar ONTIME.
Crea un módulo en tu hoja excel y coloca lo siguiente:
Código:
Public HoraAlarma As Double
Const Rutina = "Avisar"
Sub StartTimer()
HoraAlarma = Range("E9")
Application.OnTime EarliestTime:=HoraAlarma, Procedure:=Rutina, Schedule:=True
End Sub
Public Sub Avisar()
'Controlar hora
If Now() >= HoraAlarma Then
MsgBox "El tanque xxxxx está por finalizar su llenado.", vbOKOnly + vbCritical, "LLenado de Tanque"
StopTimer
Else
StartTimer ' Recomienza
End If
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=HoraAlarma, Procedure:=Rutina, Schedule:=False
End Sub
En tu hoja de cálculo usas:
B1: La hora final de llenado
B2: Minutos de antelación de la alarma
B3: =NSHORA(HORA(B1);MINUTO(B1)-B2;SEGUNDO(B1))
Activas la función llamándola con:
Espero te sirva
En un botón o similar
Espero te sirva.