Buen Día, tengo un libro de asistencia, para guardarlo sin cerrarlo, quiero que se guarde cada cierto tiempo

Utilizo este código para especificarle la ruta pero no aparece nada

Private Sub workbook_open()

ruta = "C:\Users \reynaldo.rodriguezp \Desktop \Anexos \MacroAsistencia"
Nombre Archivo = Format (Now, "ddmmyyhhmm")

This Workbook. SaveCopyAs ruta & "Asistencia " & Nombre Archivo

hora = Now + TimeValue("08:00:00")

Application.OnTime hora, "Asistencia"

End Sub

1 respuesta

Respuesta
1

Prueba con lo siguiente: Debes crear 4 macros simples:

1) En el exlorador de proyectos buscas ThisWorkbook y pones la macro de forma que cada vez que se abra el archivo llame a la seguna macro, Ejemplo:

Private Sub Workbook_Open()
Call Grabando '(Segunda macro)
End Sub

Como lo ves la primer macro solo llama a la macro que se llama "Grabando"

2) La segunda macro (Grabando) es la que guarda la copia del archivo : Ejemplo:

Sub Grabando()

ruta = "C:\Users \reynaldo.rodriguezp \Desktop \Anexos \MacroAsistencia\"
nombre = Format(Now, "dd-mm-yy-hh-mm-ss") & " " & ThisWorkbook.Name
ThisWorkbook.SaveCopyAs ruta & nombre
Call respaldos  ' (Tercer Macro) 
End Sub

3) Como puedes observar la última instrucción de la macro 2 (Grabando) es llamar a una tercera macro que se llama respaldos, la cual solo cumple con la función de ejecutar la macro 2 (Grabando) cada cierto tiempo según tus indicaciones, ejemplo:

Sub respaldos()
Dim Ejecutando As Boolean

tiempo = Now + TimeValue("008:00:00")
Application.OnTime tiempo, "Grabando", , True
End Sub

4) Como puedes ver la macro 2 llama a la macro 3 y así en un bucle indefinido que deberás cerrarlo con la Macro 4, la cual lo puedes hacer que se ejecute una vez cierras el libro, ejemplo:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
 Application.OnTime tiempo, "Grabando", , False
Range("B1").Select
On Error GoTo 0
End Sub

La macro 1 y 4 no olvides que van en ThisWorbook.

Muchas gracias,,, funciona y guarda el archivo,,, le puse terminación, xlsx,,, y no lo abría,,, cambie el nombre de la extensión a formato binario osea xlsb,,, y lo abrio,,, mi pregunta es hay alguna manera de guardarlo como extensión xlsx,,, y se pueda abrir para el usuario final,,,, ? como quiera funcionó a la perfección..... de antemano reitero,,, gracias

¿La macro la tienes en la misma hoja que copias o la tienes en un módulo?

No entiendo bien la pregunta,,, la macro esta en un archivo, el cual por lo regular siempre esta abierto,,, puse en un modulo,,, las dos macros que me aconsejaste,,, y el cuarto código que es para cuando se cierra la macro,,, en el mismo thisworkbook

¿Debería funcionar si escribes .xlsx puedes indicarme cual es el error que te muestra?

O bien envíame una copia del libro a mi correo y lo reviso.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas