Cómo eliminar automáticamente un archivo de Excel tras una fecha determinada

Categoría: Macros y VBA

Un colega, que también trabaja con Excel, me preguntó el otro día, si sería posible eliminar un archivo de Excel de forma automática, una vez ha pasado una determinada fecha, para crear una demostración de una plantilla.

La siguiente macro de Excel hace exactamente eso: Cuando llega una fecha determinada (en este caso, la que introduzcamos en la celda A1), nos informará de que el archivo se va a eliminar porque ha caducado el periodo de prueba. Introduce el siguiente código en un módulo estándar:

Sub Eliminar_archivo()
    Application.DisplayAlerts = False
    ActiveWorkbook.ChangeFileAccess xlReadOnly
    Kill ActiveWorkbook.FullName
    ThisWorkbook.Close False
End Sub


Sub caducidad()
    'deshabilitamos boton cancelar del msgbox
    Application.EnableCancelKey = xlDisabled

    fecha = Range("A1").Value

    If Date < DateSerial(Year(fecha), Month(fecha), Day(fecha)) Then

    MsgBox "Dentro de: " & (DateSerial(Year(fecha), Month(fecha), _
        Day(fecha)) - Date) & " dias este archivo se AUTOLIMINARA", _
        vbInformation, "Tiempo de Expiración"
    Else
    MsgBox "Lo siento, el tiempo de prueba a terminado." & Chr(13) _
    & "Este archivo se autoeliminará.", vbCritical, "Tiempo de Expiración"

    Call Eliminar_archivo

    End If

End Sub