Eliminar libro al cumplirse una fecha por medio de VBA

Una vez un amigo y colega mío me dijo:

-“Estoy a punto de salirme de trabajar y como desarrolle algunas macros que no me pagaron entonces les puse un candado para que dentro de dos meses dejen de funcionar…”


La idea no era mala, el se iba, dejaba las macros funcionando y semanas después de su partida las macros dejaban de funcionar, el pequeño inconveniente es que los archivos que contenían las macros se quedaban en las manos de su cliente y existen varias formas para acceder al código contenido en el libro. Una mejor estrategia hubiese sido que cada vez que se abriera el libro se verificara la fecha y dependiendo de la validación se eliminara el libro con todo y macros.

El siguiente código, muestra cómo eliminar el libro activo si la fecha del sistema es igual o posterior a una fecha especificada, dicho código va en el evento Open del libro.

NOTA: El libro eliminado no va a la papelera de reciclaje. Se elimina permanentemente.

Private Sub Workbook_Open()
Dim fecha As Date
Dim wb As Workbook

fecha = "20/09/2013" 'fecha de eliminacion del libro
Set wb = ThisWorkbook

If fecha <= Date Then
   MsgBox "Se ha cumplido el periodo de prueba del libro!", vbExclamation

   With wb
     .Saved = True 'se estable como salvado
     .ChangeFileAccess xlReadOnly 'se pone el acceso al libro como de solo lectura
     Kill .FullName 'se elimina el libro
     .Close 'se cierra el libro
  End With
End If
End Sub

Les comparto el link de ejemplo del libro.

Comentarios

  1. Hola Luis
    Buenas tardes

    Respecto a este ejemplo...
    Que pasa si desactivan las macros y acceden al libro burlando la contraseña...?

    Un saludo desde la CDMX...

    Atte. Francisco Solorzano

    ResponderBorrar
  2. Hola Francisco!

    Creo que te refieres al echo de ponerle contraseña al libro y posteriormente alguien logré crakear la contraseña y acceder al proyecto. Que sucede? pues nada solo que se hace del control del libro. La debilidad de VBA/Excel es que no puedes confiar en su seguridad al 100%, solo puedes poner barreras que impidan al usuario convencional ir más allá de los límites que les impongas.

    Saludos!

    ResponderBorrar

Publicar un comentario