Guardar automáticamente un libro sin presionar el botón guardar

Hola,

Les cuento mi problema, tengo un libro el cual siempre estará abierto, y necesito que se valla guardando en un nuevo archivo con nombre diferente con las modificaciones, todo esto sin tener q presionar el botón guardar, pude hacerlo esto, que cree el nuevo archivo cada vez q presiono guardar, pero no se como hacer para q esto se haga cada cierto tiempo automáticamente... Utilice esta función Application.AutoRecover.Enabled pero no hace nada..

les dejo el código q tengo hasta el momento....

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveWorkbook.Activate
nbre = "Archivo_" & Format(Now, "dd-mm-yy hh mm ss")
ActiveWorkbook.SaveCopyAs "D:\" & nbre & ".xls"
End Sub

saludos y ojala me puedan ayudar..

1 Respuesta

Respuesta
1

Te mando mi solución:

Por un lado programamos la macro auto_open para que se ejecute un proceso ontime al abrir el archivo y de este manera se queda en ejecución. En este ejemplo lo he programado para que cada 10 minutos se grabe el archivo

Sub auto_open()
Application.OnTime Now + TimeValue("00:10:00"), "proceso"
End Sub
Sub proceso()
nbre = "Archivo_" & Format(Now, "dd-mm-yy hh mm ss")
ActiveWorkbook.SaveCopyAs "d:\" & nbre, FileFormat:=xlOpenXMLWorkbookMacroEnabled
auto_open
End Sub

recuerda finalizar

El código q me enviaste lo puse en ThisWorkbook... pero no funciona,lo puse tal cual en mi libro excel,le cambie el TimeValue("00:02:00"), q según entiendo una vez abierto el archivo

"Proceso" debería ejecutarse automáticamente cada 2 minutos y crear un archivo cada ese mismo tiempo?.

como aclaración aparte, te cuento q este archivo debe estar abierto siempre y no sera maniupulado por nadie... el proceso de crear y guardar un archivo debe hacerlo automaticmanete...

no se si me explique...

gracias de antemano...

Yo te puedo decir que lo he probado con las macros que te he enviado y funciona perfectamente. También lo he probado con esta macro:

Sub proceso()
nbre = "Archivppo_" & Format(Now, "dd-mm-yy hh mm ss")
ActiveWorkbook.SaveAs "C:\Users\Luis\Documents\" & nbre, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Application.OnTime Now + TimeValue("00:02:00"), "proceso"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas