Formulario que habrá a una hora especifica excel

Tengo un formulario hecho que se llama ad. Necesito que este formulario se habrá

automáticamente a las 4:45 pm...

Conozco algo de esto pero no he podido ejecutarlo...

1 Respuesta

Respuesta
2

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.

donde me indicaste metí los módulos respectivamente cambiando ciertas cosas de acuerdo a mis necesidades.....En thisworkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'por.DAM
PararReloj
End Sub
Private Sub Workbook_Open1()
'Ejecuta la macro según la hora
'Por.Dam
If Time >= "07:54:00 p.m." Then
backup.Show
Else
ActualizarHora
End If
End Sub

Cambie open x open1() xq tengo un macros con open

la hora para probar si función

el nombre xq mi formulario se llama asi

En un modulo lo siguiente

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 >= "07:54:00 p.m." Then
'Si es la hora, detiene el reloj y muestra el formulario
PararReloj
backup.Show
Exit Sub
End If
'Lanzar el siguiente evento 15 minutos después
Application.OnTime Now + TimeValue("00:15:00"), "ActualizarHora"
End Sub

Cambie lo que esta en negrita

1-No funciono y no se xq

2-que el mensaje aparezca a la hora que pido y si no prendo la pc en el dia y la arranco

después de la hora que no se ejecute ese dia.....

Saludos

Puedes probar mi archivo antes de hacerle cambios a la macro y una vez que estés seguro de cómo funciona, puedes cambiarle lo que quieras.

https://www.dropbox.com/s/s3zhn1lma2bgf5i/crono%20dam2.xls

Saludos. DAM

Gracias experto, sos un genio......con tu archivo vi el problema y solucione el mio...........

Saludos y gracias x compartir lo que mucho les a costado............

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas