MACROS DE EXCEL

Crear backups o respaldos cada n tiempo en Excel (macro)

Crear backups o respaldos cada n tiempo en Excel (macro)

Crear backups o respaldos cada n tiempo en Excel (macro)

¿Cómo podemos crear backups o respaldos automáticos cada un cierto período de tiempo y mediante el uso de macros en Excel?

La siguiente macro nos permite generar copias automáticas de un archivo a medida que realizamos cambios y cada n tiempo predefinido mediante macros de forma rápida y fácil en Excel.

Debemos copiar dos códigos dentro de la ventana de VBA. La instrucción a copiar dentro de un nuevo módulo de vba es la siguiente:

 

CREAR BACKUPS O RESPALDOS CADA N TIEMPO EN EXCEL (MODULO)

Public ProximaCopia As Date
Public UltimoGuardado As Date

Sub IniciarBackups()

    UltimoGuardado = Now

    CrearBackup
    ProgramarBackup

End Sub

Sub ProgramarBackup()

    'cada N tiempo
    ProximaCopia = Now + TimeValue("00:00:10")

    Application.OnTime _
        EarliestTime:=ProximaCopia, _
        Procedure:="EjecutarBackup"

End Sub

Sub EjecutarBackup()

    'solo si hubo cambios
    If ThisWorkbook.Saved = False Then

        CrearBackup

    End If

    ProgramarBackup

End Sub

Sub CrearBackup()

    Dim carpeta As String
    Dim nombre As String

    carpeta = "C:\Users\Adrian\Desktop\Excel\"

    nombre = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) & _
             "_" & Format(Now, "yyyymmdd_hhmmss") & ".xlsm"

    ThisWorkbook.SaveCopyAs carpeta & nombre

    UltimoGuardado = Now

End Sub

Sub DetenerBackups()

    On Error Resume Next

    Application.OnTime _
        EarliestTime:=ProximaCopia, _
        Procedure:="EjecutarBackup", _
        Schedule:=False

End Sub

 

Y la instrucción a copiar dentro de «ThisWorkbook» del proyecto VBA es la siguiente:

 

CREAR BACKUPS O RESPALDOS CADA N TIEMPO EN EXCEL (THISWORKBOOK)

Private Sub Workbook_Open()

    IniciarBackups

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    DetenerBackups

End Sub

 

Notar que dentro del módulo configuramos un tiempo de 10 segundos en la línea de código ProximaCopia = Now + TimeValue(«00:00:10») (a modo didáctico para los videos explicativos), y debemos modificar en base al tiempo que necesitemos para generar los backups o respaldos. También debemos modificar la ruta a la carpeta donde deseamos guardar dichos archivos, en el ejemplo la línea de código a modificar es carpeta = «C:\Users\Adrian\Desktop\Excel\»

Es importante que la carpeta esté creada antes de ejecutar el archivo con la ruta configurada, caso contrario devolverá error al abrir el archivo. Primero configurar la ruta en Excel, guardar y cerrar,  crear la carpeta y finalmente abrir el archivo para iniciar la macro de forma automática.

Por último, recordar que la macro realiza una copia inicial al abrir el archivo y creará nuevos respaldos/backups cada 10 segundos siempre y cuando se hayan hecho modificaciones en el archivo, caso contrario no creará dichas copias, a fin de no generar archivos iguales que ocupen espacio de almacenamiento.

De esta forma logramos crear backups o respaldos cada cierto período de tiempo de forma rápida y fácil mediante macros en Excel.

 

Te recomiendo ver el siguiente link con más videos de Macros útiles de Excel AQUÍ.

¿No sabés como instalar esta macro? ¡No te preocupes!  Aquí está la solución:

Salvo aclaración, todas las fórmulas y macros de este sitio están configuradas para aplicarse sobre la celda A1. Algunas fórmulas se encuentran encerradas entre llaves {} debido a que son fórmulas matriciales. Estas llaves no deben introducirse tecleándolas, sino que se generan automáticamente al aceptar la fórmula pulsando Control+Shift+Enter al mismo tiempo. Las fórmulas de este sitio son compatibles con versiones de Microsoft Excel® 2010 o superiores.