Afegir caducitat en un Excel i fer que es tanqui o s’esborri del disc
Afegir caducitat en un Excel i fer que es tanqui o es s’esborri del disc
Amb Microsoft Excel es poden fer moltes coses, Virgueries diria jo. És sens dubte una de les millors aplicacions que Microsoft ha pogut desenvolupar i les seves possibilitats son brutals, prova d’això és l’exercici que realitzarem avui.
Avui fabricarem un fitxer amb Excel que podria contenir les dades que vulgueu, on hi inclourem una macro que anirà comprovant la data per a calcular una caducitat, arribada la data límit, el fitxer donarà una advertència i es tancarà, però si voleu anar més enllà podem programar el mateix fitxer perquè arribada la data de fi, ell mateix s’elimini del nostre disc dur sense ni deixar rastre a la paperera. Que com pot ser això possible? Doncs ara ho veurem.
El primer que farem serà crear un nou document amb Excel, aquest document el guardarem amb el nom que vulguem en el nostre disc i com a extensió seleccionarem xlsm (Archivo de Excel con macros)
Amb el fitxer Excel obert, prement al mateix temps les tecles “Alt” i “F11”, cridarem el “Microsoft Visual Basic para aplicacions” aquí és on programarem la macro que durà a terme aquest comportament.
A la part de l’esquerra seleccionem “ThisWorkbook” i posem sel codi de la següent manera
Private Sub Workbook_Open() Dim exdate As Date exdate = "12/05/2014" If Date > exdate Then MsgBox ("Aquest fitxer ha caducat") ActiveWorkbook.Close SaveChanges:=False End If MsgBox ("Queden " & exdate - Date & " dies") End Sub
Si us fixeu les comandes son molt senzilles i fàcilment interpretables:
La primera línia fa que aquesta macro s’executi al obrir el llibre, posteriorment definim la variable “exdate” on hi posarem la data de caducitat, seguidament informem de la data de caducitat i li diem que si la data actual és més gran que la “exdate” a les hores mostri una missatge de fitxer caducat i tanqui el llibre sense guardar els canvis, En ca contrari obre també una finestra i resta el dies que queden entre la data actual i la de caducitat
Ja podem guardar tancar l’Excel i tornar a obrir per a provar si hem obtingut l’efecte desitjat.
Nota: Caldrà que la persona doni permís o habiliti les macros. Per assegurar-nos de que ho farà ho podem fer obligatori per a mostra el contingut del fitxer.
Si estem dins la data de vigència, apareixerà aquest missatge:
Si ja hem passat la data fi (Ho podem provar avançant la data de l’ordinador) , veurem aquest missatge i el fitxer es tancarà
Ara, si hi volem donar una volta més, podem fer que un cop caducat, a més de tancar el fitxer, l’esborri del disc dur sense deixar rastre.
Obrim l’arxiu i anem a editar la Macro que hem creat anteriorment, ara cas de que la data sigui superior a la de caducitat a més de mostrar el missatge, cridarem una nova macro a la que hem anomenat “Autodestruccio”, que fara un Kill del fitxet (l’Eliminarà) i ho tancarà sense guardar
Private Sub Workbook_Open() Dim exdate As Date exdate = "11/30/2014" If Date > exdate Then MsgBox ("Aquest fitxer ha caducat") Call AutoDestruccio End If MsgBox ("Queden " & exdate - Date & " dies") End Sub
Sub AutoDestruccio() On Error Resume Next Application.DisplayAlerts = False ChangeFileAccess xlReadOnly Kill ActiveWorkbook.FullName ActiveWorkbook.Close SaveChanges:=False On Error GoTo 0 End Sub
Ja podeu guardar, canviar la data de l’ordinador i veure com el fitxer s’elimina del disc dur sense possibilitat de recuperació