Guardar y cerrar un libro Excel transcurrido un tiempo de inactividad

Compatibilidad: Truco compatible con Excel 365Truco compatible con Excel 2016Truco compatible con Excel 2013Truco compatible con Excel 2010Truco compatible con Excel 2007

En muchas ocasiones nos interesa guardar y cerrar un libro transcurrido un tiempo de inactividad, de forma automática.

Guardar y cerrar un libro Excel transcurrido un tiempo de inactividad
  • MACRO EN MÓDULO VBA

  1. Abrir el libro Excel deseado.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la macro.

    Explorador de Proyectos con módulo1 seleccionado
  4. Escribir el código de la macro:

    Dim Tiempo As Date

    Sub Reloj()

    Tiempo = Now + TimeValue(“00:02:00”)

    On Error Resume Next

    Application.OnTime EarliestTime:=Tiempo, _
    Procedure:=”Salir”, Schedule:=True

    End Sub

     

    Sub Para()

    On Error Resume Next

    Application.OnTime EarliestTime:=Tiempo, _
    Procedure:=”Salir”, Schedule:=False

    End Sub

     

    Sub Salir()

    ActiveWorkbook.Close Savechanges:=True

    End Sub

    – TimeValue(“00:02:00”). Representa el tiempo de inactividad.

  • MACRO EN LIBRO

  1. Ir a: Explorador de Proyectos / VBAProject / Doble Clic sobre ThisWorkbook (libro). Si el panel no está visible Ir a: Barra de menú / Ver / Explorador de proyectos. Mostrará la ventana donde escribimos la macro.

    Explorador de Proyectos con macro en ThisWorkbook
  2. Escribir el código de la macro:

    Private Sub Workbook_BeforeClose(Salir As Boolean)

    Call Para

    End Sub

     

    Private Sub Workbook_Open()

    Call Reloj

    End Sub

     

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    Call Para
    Call Reloj

    End Sub

  3. Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.

  • EJECUTAR LA MACRO

  1. Abrir el libro que contiene la macro.

  2. Transcurrido el tiempo fijado en la macro (de inactividad) / Guarda los cambios realizados / Cierra el libro Excel automáticamente.

  3. Si nunca se ha guardado el libro, mostrará el cuadro de diálogo Guardar como, para indicar la carpeta y el nombre de almacenamiento.

  

Nivel de dificultad: Experto VBA-Macros Excel Experto VBA – Macros

4 comentarios en “Guardar y cerrar un libro Excel transcurrido un tiempo de inactividad

  • Hola
    Buenas tardes
    Ya estudie lo que comentas y lo utilicé para un área que nos metía en bastantes problemas…!
    Una duda…
    Y cómo sería si quiero crear una copia del libro, sin tener que renombrar el libro activo..?

    Muchas gracias por compartir tus conocimientos…!

    Saludos desde la CDMX.

  • Hola
    Buenas tardes

    La verdad, excelente portal…!

    Una sugerencia: Se puede indicar en alguna parte del archivo la fecha y la hora cuando se cierra el libro automaticamente.

    Saludos desde la CDMX.

    • Hola Francisco,

      La macro inserta la fecha y hora actual antes de cerrar el libro. Se deberá de insertar en: ThisWorkbook:

      Private Sub Workbook_BeforeClose(Cancel As Boolean)

      Worksheets(“Hoja1”).Activate
      Range(“A1”).Select
      Do While ActiveCell.Value <> “”
      ActiveCell.Offset(1, 0).Select
      Loop
      Selection.Value = Now
      Selection.NumberFormat = “m/d/yyyy h:mm:ss AM/PM”

      End Sub

      Cambia Hoja1 por la hoja deseada para insertar la fecha y A1 para la columna.

      Saludos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *