Realiza lo siguiente, para que se ejecute la maco cuando abras el libro de excel.
Instrucciones para poner la macro en ThisWorkbook
1. Abre tu libro de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
4. Del lado derecho copia la macro
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'por.DAM
PararReloj
End Sub
Private Sub Workbook_Open()
'Ejecuta la macro según la hora
'Por.Dam
If Time >= "04:45:00 p.m." Then
UserForm1.Show
Else
ActualizarHora
End If
End Sub
Sigue las Instrucciones para poner la macro en un módulo
1. Abre tu libro de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
Sub PararReloj()
'por.DAM
'Desactivar el evento Ontime
On Error Resume Next
Application.OnTime dtHoraSiguiente, "ActualizarHora", , False
On Error GoTo 0
End Sub
Sub ActualizarHora()
'por.dam
If Time >= "04:45:00 p.m." Then
'Si es la hora, detiene el reloj y muestra el formulario
PararReloj
UserForm1.Show
Exit Sub
End If
'Lanzar el siguiente evento 15 minutos después
Application. OnTime Now + TimeValue("00:15:00"), "ActualizarHora"
End Sub
Guarda el archivo, ábrelo nuevamente, la macro se empezará a ejecutar cada 15 minutos, cuando sean las 4:45 pm o más, el formulario se abrirá en automático.
Puedes cambiar el intervalo de 15 minutos a un minuto por ejemplo
Application. OnTime Now + TimeValue("00:01:00")
O a cada media hora, por ejemplo
Application. OnTime Now + TimeValue("00:30:00")
Pero no te recomiendo que sea cada minuto, porque cada minuto se ejecutaría la macro y no te permitiría trabajar en excel cómodamente.
Prueba y me comentas
Saludos. Dam
Si es lo que necesitas.