Autodestruir un libro

08/03/2007 - 20:06 por Ivan | Informe spam
hola a todos,

estoy intentando que un libro ya creado, se autodestruya tras haber
realizado su 'cometido'. A lo mejor es muy sencillo, o a lo mejor no
se puede, pero la cosa es que no consigo verlo. Tras buscar algo
parecido al Delete de las hojas, etc,.., al final mis ultimos intentos
van por la via de crear un 2º libro, insertarle codigo, e intentar que
sea este el que realice el cometido una vez cerrado el primero. Pero,
o algo estoy haciendo mal o es que, al menos con este planteamiento no
se puede.

el codigo que pongo a continuacion es una de las ultimas combinaciones
que he probado, pero, a pesar de cerrar el primer libro y 'no guardar'
el 2º, el 1º no me lo elimina de su directorio (tambien me interesa
que no lo mande a la papelera de reciclaje, sino que lo elimine del
todo)3

bueno, no se si me he explicado, pero ahi va el codigo:

Sub Autodestruir()
Dim EsteLibro As String
With ThisWorkbook
EsteLibro = .Path & "\" & .Name
.Save: .Close
End With
Workbooks.Add
With
ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule
.InsertLines 2, "Private Sub Workbook_BeforeClose(Cancel As
Boolean)"
.InsertLines 3, " Kill " & """" & EsteLibro & """"
.InsertLines 4, " ThisWorkbook.Saved = True"
.InsertLines 5, "End Sub"
.InsertLines 6, "Private Sub Workbook_Activate()"
.InsertLines 7, " ThisWorkbook.Close"
.InsertLines 8, "End Sub"
End With
End Sub

he probado muchas combinaciones, pej. cerrar el libro tambien desde el
2º libro:->

.InsertLines 6, " Workbooks(" & """" & EsteLibro & """" & ").Close"

pero tampoco he conseguido eliminarlo. ¿quizas es que al llamar a otro
libro desde uno, este ultimo no se cierra realmente hasta que todo el
codigo llamante se ha ejecutado?

se me esta ocurriendo que quizas insertando un OnTime en el 2º libro,
para dar tiempo a que realmente se cierre el 1º. Voy a probarlo, pero
no lo veo nada claro.

en cualquier caso, si a alguien se le ocurre algo se lo agradezco

un saludo y hasta pronto
Ivan

Preguntas similare

Leer las respuestas

#11 Malaquias
19/03/2007 - 19:00 | Informe spam
Exactamente que compruebe la fecha y si se sobrepasa de autodestruya. Tengo
un cuenta tu sugerimiento de manipulación de la fecha del sistema.

<<<<<<<<<<<<<<<<<<<<

"Héctor Miguel" escribió en el mensaje
news:
hola, Malaquias !

... aprovechando el hilo, se puede autodestruir a partir de una fecha ?
(por ejemplo 01-04-07)



solo necesitas que al momento de abrirse el libro, exista alguna forma de
'comprobacion' de la fecha 'actual' ???
recuerda que se puede modificar la fecha 'del sistema' -p.e.- desde el panel
de control de windows o la barra de tareas :-(
[por lo tanto] te sugiero algun procedimiento 'auxiliar' que vaya
depositando fechas consecutivas [p.e. en alguna hoja oculta]
y que al momento de 'romperse' esta secuencia y/o alcanzar la fecha
'imite'... ejecute el procedimiento de auto-eliminacion ;)

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ las consultas anteriores __
estoy intentando que un libro ya creado, se autodestruya tras haber
realizado su 'cometido'...



prueba copiando/pegando las siguientes instrucciones [p.e.] en el evento
que consideres aplicable...
o como lineas siguientes al 'cometio cumplido'... o... ???
-> corre pruebas sobre copias, porque [probablemente] no volveras a ver el
archivo que se auto-elimine :D

[luego de otras lineas en algun procedimiento en algun modulo de codigo]
???

Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
Kill ThisWorkbook.FullName
ThisWorkbook.Close False
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida