Note: The other languages of the website are Google-translated. Back to English

¿Cómo guardar y cerrar el libro de trabajo después de la inactividad durante un cierto período de tiempo?

En algunas ocasiones, puede cerrar accidentalmente un libro de trabajo cuando está ocupado con otros asuntos durante mucho tiempo, lo que puede perder algunos datos importantes en el libro de trabajo. ¿Hay algún truco para guardar y cerrar automáticamente el libro de trabajo si lo ha desactivado durante un tiempo determinado?

Guarde y cierre automáticamente el libro de trabajo después de la inactividad durante un cierto período de tiempo con VBA

flecha azul burbuja derecha Guarde y cierre automáticamente el libro de trabajo después de la inactividad durante un cierto período de tiempo con VBA

No hay una función incorporada en Excel para resolver este problema, pero puedo introducir un código de macro que puede ayudarlo a guardar y cerrar el libro de trabajo después de la inactividad en un tiempo determinado.

1. Habilite el libro de trabajo que desea guardar automáticamente y cerrar después de inactividad durante ciertos segundos y presione Alt + F11 llaves para abrir Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic en recuadro > Módulo para crear un Módulo script y pegue el código a continuación. Ver captura de pantalla:

Dim CloseTime As Date
Sub TimeSetting()
    CloseTime = Now + TimeValue("00:00:15")
    On Error Resume Next
    Application.OnTime EarliestTime:=CloseTime, _
      Procedure:="SavedAndClose", Schedule:=True
End Sub
Sub TimeStop()
    On Error Resume Next
    Application.OnTime EarliestTime:=CloseTime, _
      Procedure:="SavedAndClose", Schedule:=False
 End Sub
Sub SavedAndClose()
    ActiveWorkbook.Close Savechanges:=True
End Sub

 

doc guardar libro cerrado después de inactividad 1

3. Luego, en el Proyecto Explorer panel, haga doble clic Este libro de trabajoy pegue el código siguiente en el script al lado. Ver captura de pantalla:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Call TimeStop
End Sub

Private Sub Workbook_Open()
    Call TimeSetting
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
   Call TimeStop
   Call TimeSetting
End Sub

 

doc guardar libro cerrado después de inactividad 2

4. Vaya a hacer doble clic en el módulo que insertó en el paso 2 y presione F5 clave para ejecutar el código. Ver captura de pantalla:
doc guardar libro cerrado después de inactividad 3

5. Luego, después de 15 segundos, aparece un cuadro de diálogo para recordarle que guarde el libro de trabajo y haga clic en para guardar y cerrar el libro.
doc guardar libro cerrado después de inactividad 4

Consejos:

(1) En el primer código, puede cambiar el tiempo de inactividad a otro en esta cadena: Ahora + TimeValue ("00:00:15")

(2) Si nunca ha guardado el libro antes, el Guardar como El cuadro de diálogo aparecerá en primer lugar y le pedirá que lo guarde.
doc guardar libro cerrado después de inactividad 5


bueno Proteger la hoja de trabajo

Kutools para Excel Proteger la hoja de trabajo La función puede proteger rápidamente varias hojas o todo el libro a la vez.
doc proteger varias hojas de trabajo

Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (11)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
El código anterior no funciona cuando una celda está activa. Es decir

1. ingrese un valor en la celda (no presione Entrar o tabular)

2. minimizar el excel.

En este caso el código no funciona.
Este comentario fue minimizado por el moderador en el sitio
Si está trabajando en un libro de trabajo separado en el punto donde se alcanza el tiempo de cierre, cerrará ese libro de trabajo y no el inactivo. Esto se puede resolver ajustando el código a:

Dim CloseTime como fecha
Dim WKB como cadena
Ajuste de tiempo secundario ()
WKB = ActiveWorkbook.Nombre
CloseTime = Ahora + TimeValue("00:00:15")
On Error Resume Next
Application.OnTime Hora más temprana:=Hora de cierre, _
Procedimiento:="GuardadoYCerrar", Horario:=Verdadero
End Sub
Parada de tiempo secundaria ()
On Error Resume Next
Application.OnTime Hora más temprana:=Hora de cierre, _
Procedimiento:="GuardadoYCerrar", Programación:=Falso
End Sub
Sub Guardado y cerrado ()
Libros de trabajo (WKB).Cerrar Savechanges:=True
End Sub
Este comentario fue minimizado por el moderador en el sitio
Me di cuenta de lo mismo. Y encontré la misma solución :-)
Este comentario fue minimizado por el moderador en el sitio
A veces me encuentro con un "Error de tiempo de ejecución" cuando abro el libro de trabajo que tiene este código integrado. De todos modos, ¿escribir mejor este código para que sea más estable?
Este comentario fue minimizado por el moderador en el sitio
brillante gracias
Este comentario fue minimizado por el moderador en el sitio
hola, quiero insertar este código en otro código como el código de caducidad con este código, ¿cómo puedo hacer...?
el código es... siguiente
Private Sub Workbook_Open ()

Dim exdate como fecha
Dim i As Integer

'¡modifique los valores para la fecha de vencimiento aquí!
anul = 2019' año
luna = 5' mes
ziua = 16' día

exdate = DateSerial(anul, luna, ziua)

Si Fecha > exdate Entonces
MsgBox ("La aplicación " & ThisWorkbook.Name & " ha caducado !" & vbNewLine & vbNewLine _
& "La fecha de configuración de vencimiento es: " & exdate & " :)" & vbNewLine & vbNewLine _
& "¡Comuníquese con el administrador para renovar la versión!"), vbCritical, ThisWorkbook.Name

expired_file = ThisWorkbook.Path & "\" & ThisWorkbook.Name

En caso de error Ir a ErrorHandler
Con libros de trabajo (Este libro de trabajo. Nombre)
Si .Ruta <> "" Entonces

.Guardado = Verdadero
.ChangeFileAccess xlReadOnly

Matar expired_file

'Obtenga el nombre del complemento si es complemento y desinstale el complemento
Si Application.Version >= 12 Entonces
i = 5
De lo contrario: i = 4
Si terminar

Si Derecha(EsteLibro.Nombre, i) = ".xlam" O Derecha(EsteLibro.Nombre, i) = ".xla" Entonces
wbName = Left(EsteLibro.Nombre, Len(EsteLibro.Nombre) - i)
'desinstalar complemento si está instalado
Si AddIns(wbName).Instalado Entonces
AddIns(wbName).Instalado = Falso
Si terminar
Si terminar

.Cerca

Si terminar
End With

Exit Sub

Si terminar

'MsgBox ("Tienes" & exdate - Fecha & "Días restantes")
Exit Sub

ErrorHandler:
MsgBox "Error al borrar el archivo.. "
Exit Sub

End Sub
Este comentario fue minimizado por el moderador en el sitio
Si está trabajando en un libro de trabajo separado en el punto donde se alcanza el tiempo de cierre, cerrará ese libro de trabajo y no el inactivo. Esto se puede resolver ajustando el código a: - corregido y probado desde el comentario a continuación - use este código:

Ingrese a "Este libro de trabajo"

Libro de trabajo secundario privado_Antes de cerrar (Cancelar como booleano)
Tiempo de llamada Parada
End Sub
Private Sub Workbook_Open ()
Configuración de tiempo de llamada
End Sub
Libro de trabajo secundario privado_Cambio de hoja (ByVal Sh como objeto, ByVal Target como rango)
Tiempo de llamada Parada
Configuración de tiempo de llamada
End Sub


Introduzca en "módulo":

Dim CloseTime como fecha
Ajuste de tiempo secundario ()
CloseTime = Ahora + TimeValue("00:10:00")
On Error Resume Next
Application.OnTime Hora más temprana:=Hora de cierre, _
Procedimiento:="GuardadoYCerrar", Horario:=Verdadero
End Sub
Parada de tiempo secundaria ()
On Error Resume Next
Application.OnTime Hora más temprana:=Hora de cierre, _
Procedimiento:="GuardadoYCerrar", Programación:=Falso
End Sub
Sub Guardado y cerrado ()
ThisWorkbook.Close Savechanges:=True
End Sub


puede cambiar la configuración de la hora cambiando CloseTime = Now + TimeValue("00:10:00") - esto se establece en 10 minutos, cambie ("00:10:00") a la hora que desee y funciona.
Este comentario fue minimizado por el moderador en el sitio
No estoy seguro de lo que sucedió, pero esta solución ya no funciona. Aquí está la solución a esta solución que funcionó para mí:

`` ``
Restablecimiento de atenuaciónContar siempre

Sublibro de trabajo público_Open()
On Error Resume Next
Establecer xWB = Este libro de trabajo
restablecerCuenta = 0
End Sub

Libro de trabajo secundario privado_Cambio de hoja (ByVal Sh como objeto, ByVal Target como rango) En caso de error Reanudar siguiente
Restablecer configuración
End Sub

Sub Restablecer () En caso de error Reanudar siguiente
Estático xCloseTime
Si resetCount <> 0 Entonces
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=False
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, Now)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True

otro
resetCount = resetCount + 1
xCloseTime = DateAdd("n", 15, Now)
ThisWorkbook.Application.OnTime xCloseTime, "SaveWork1", Schedule:=True
Si terminar
End Sub
`` ``
Esto está usando el mismo SaveWork1 como:
````Sub GuardarTrabajo1()
Application.DisplayAlerts = False
Este libro de trabajo. Guardar
Este libro de trabajo. Cerrar

Application.DisplayAlerts = True
End Sub

`` ``
Este comentario fue minimizado por el moderador en el sitio
Esto es genial. ¿Algún consejo sobre cómo agregar un cuadro de mensaje emergente que advierta al usuario que la hoja está a punto de cerrarse y le brinde la opción de restablecer el temporizador?
Este comentario fue minimizado por el moderador en el sitio
Cuando no quiero editar y solo quiero consultar, el archivo todavía se cierra. No debería cerrar. Debería reiniciar el conteo cuando selecciono celdas. ¿Cuál es la solución?
Este comentario fue minimizado por el moderador en el sitio
Cuando no quiero editar y solo quiero consultar, el archivo todavía se cierra. No debería cerrar. Debería reiniciar el conteo cuando selecciono celdas. ¿Cuál es la solución?
No hay comentarios publicados aquí todavía
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL