Guardar cada 20 segundos excel pero que no se abra si se ha cerrado el libro

Tengo una macro para guardar cada 20 segundos, el problema es que cuando cierro excel, este se vuelve a abrir para volver a guardar.

En ThisWorkbook

   Private Sub Workbook_open()
      Application.OnTime Now + TimeValue("00:00:20"), "savebook"
   End Sub

En Module 1

   Sub savebook()
      ActiveWorkbook.Save
      Application.OnTime Now + TimeValue("00:00:20"), "savebook"
   End Sub

¿Qué necesito agregar?

1 respuesta

Respuesta
2

Realiza lo siguiente:

Cambia el siguiente código

   Private Sub Workbook_open()
      Application.OnTime Now + TimeValue("00:00:20"), "savebook"
   End Sub

Por lo siguiente:

Private Sub Workbook_open()
    Call savebook
End Sub
'
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.OnTime ahora + TimeValue("00:00:20"), "savebook", , Schedule:=False
End Sub

En el módulo debe quedar así:

Public ahora
'
Sub savebook()
    ActiveWorkbook.Save
    ahora = Now
    Application.OnTime ahora + TimeValue("00:00:20"), "savebook"
End Sub

Observa que al inicio del código debe ir la declaración de la variable pública ahora.


En la siguiente respuesta explico los detalles de por qué se debe utilizar una variable.

Modificar Parpadeo dependiendo de lo diga la Celda


Listo, abres tu libro y se empieza a ejecutar la macro savebook, cuando cierras el libro, se ejecuta la instrucción Application.Ontime pero con el parámetro Schedule:=False, con esto se detiene la macro;  y ya no se abre el libro nuevamente.


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

¡Gracias! Dante, es usted mi ídolo, es la segunda vez que los consulto y es la segunda vez que resuelve mi problema en tan poco tiempo.

Gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas