Eliminar libro según fecha con VBA/Excel

Estándar

Borrar un libro según la fecha especificada

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

Anuncios

11 comentarios en “Eliminar libro según fecha con VBA/Excel

      • Geousuario

        Gracias por la respuesta.
        Uso el Office 2010, la pregunta surgio cuando quise aplicarlo al powert point, pero no resulto. La consulta es: Workbook_Open, estambien para powerpoint?, no soy muy entendido en VBA, creo que eso es para excel…. quisiera su ayuda por favor, ya que la rutina es muy interesante para proteger nuestras presentaciones…
        Gracias por su atención, es valioso el esfuerzo de compartir su conocimiento con todos.

      • Hola! con word no hay problema, tiene el evento open.

        Respecto a power point creo que sera cuestion de investigar ya que nunca he echo una macro en power point, pero no evento open.

    • De echo si! La observacion que comentas es lo mas logico mas aun cuando piensas eliminar un libro a futuro.

      Puse la condicion de esaa forma, para que aquellos que prueben el codigo tal cual no se vean en la necesidad de cambiar la fecha del sistema.

      Saludos!

    • Cuidado con esta operación, si le escribes If fecha >= Date then, entonces la macro nunca funcionará a futuro y más bien se te eliminará el mismo día que creas la macro y vuelvas a abrir el libro. se escribe <= a hoy porque según nosotros en el futuro la fecha que le escribimos como límite estará en el pasado o sea menor. Me entiendes?

  1. Ah…. y disculpen, esto no es anti-ético o ilegal? digo por el hecho de que son archivos que ahora pertenecen a la empresa y podrían acusarte por destrucción de documentos de uso empresarial, o sea, los tomarían como propios.

    • Puede llegar a considerarse, dependiendo de las circunstancias y si hay algún documento de por medio. Tengo entendido que en las instituciones bancarias todo lo desarrollado le pertenece a la institución.

      Saludos!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s