Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Cerrar Proyecto VBA

176 views
Skip to first unread message

Albymar

unread,
Jun 12, 2009, 12:08:01 PM6/12/09
to
Hola a tod@s,
Tengo un libro Excel con un proyecto VBA (protegido con contraseña) ...
Si el libro no cumple una serie de condiciones, se elimina (Kill
ThisWorkbook.FullName) ...
¿Por qué una vez eliminado, me pide la contraseña del Proyecto VBA?
¿Que debo hacer para evitar esto?
Saludos y GRACIAS a tod@as.
Albymar

H�ctor Miguel

unread,
Jun 12, 2009, 5:27:00 PM6/12/09
to
hola, !

> Tengo un libro Excel con un proyecto VBA (protegido con contrasena) ...


> Si el libro no cumple una serie de condiciones, se elimina (Kill ThisWorkbook.FullName) ...

> Por que una vez eliminado, me pide la contrasena del Proyecto VBA?


> Que debo hacer para evitar esto?

- comenta el(los) procedimiento/s para ejecutar la instruccion "kill" (COMPLETO/S, "plis")
- comprueba que antes de estos procedimientos NO haga consultas (queries) hacia "el mismo libro"
- comenta cualquier otro detalle que tu conozcas y no se pueda desprender/adivinar/... de tu consulta (?)

saludos,
hector.


Albymar

unread,
Jun 14, 2009, 3:42:01 AM6/14/09
to
Hola a todos,
Perdonar por la tardanza, pero ayer sábado no pude conectarme.
Bueno, al asunto... os paso datos:
- uso WindowsXP y Excel 2007 (también Excel 2003)
- y el código es:

En el Módulo ThisWorkbook:
Private Sub Workbook_Open()
If Date > #12/31/2009# Then AnularAcceso
End Sub

En un módulo General:

Sub AnularAcceso()
Application.DisplayAlerts = False
Windows(ThisWorkbook.Windows(1).Caption).Visible = False
AnularAccesoForm.Show
ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
Kill ThisWorkbook.FullName
ThisWorkbook.Close SaveChanges:=False
End Sub

En el código del UserForm:

Private Sub UserForm_Activate()
Application.Wait Now + TimeValue("00:00:05")
AnularAccesoForm.Hide
End Sub

Eso es todo, GRACIAS a tod@s por vuestra ayuda e interes,
Albymar


H�ctor Miguel

unread,
Jun 14, 2009, 8:41:42 PM6/14/09
to
hola, !

lo mas importante es que estos procedimientos "heredan" al VBE un proyecto "fantasma" (es decir):
aun despues de "matado" (y cerrado) el libro con el "kill", en el VBE sigue estando "presente"
y la causa es el haber mostrado un formulario (componentes ActiveX) previo a la auto-destruccion del archivo
esto sucede a partir de la version 2003 y supongo despues de las mas recientes actualizaciones instaladas
(supongo que dentro de las mejoras en seguridad, la "reaccion" es diferente ante distintos objetos, metodos, etc.)

considera que mientras el codigo esta corriendo (durante la presentacion del formulario)
=> el usuario tiene la opcion de pulsar {ctrl}+{pausa/break/interrupcion} Y DETENER la ejecucion de tu codigo
(con lo cual, la auto-destruccion del archivo jamas llegara a ejecutarse) (???)

la pregunta seria: que tan importante o necesario es mostrar ese formulario (?)
si NO lo muestras, desaparecerian (todos ?) tus "problemas" :D

saludos,
hector.

__ OP __
> - uso WindowsXP y Excel 2007 (tambien Excel 2003) y el codigo es:
>
> En el Modulo ThisWorkbook:


> Private Sub Workbook_Open()
> If Date > #12/31/2009# Then AnularAcceso
> End Sub
>

> En un modulo General:


> Sub AnularAcceso()
> Application.DisplayAlerts = False
> Windows(ThisWorkbook.Windows(1).Caption).Visible = False
> AnularAccesoForm.Show
> ThisWorkbook.ChangeFileAccess Mode:=xlReadOnly
> Kill ThisWorkbook.FullName
> ThisWorkbook.Close SaveChanges:=False
> End Sub
>

> En el codigo del UserForm:

Albymar

unread,
Jun 15, 2009, 5:21:02 AM6/15/09
to
Hola a tod@s...
y GRACIAS en especial a ti, Hector por tu ayuda e interes por el tema...
Muy buena tu explicación, como debe ser, clara y concisa.
Reitero mis gracias,
Saludos,
Albymar.


0 new messages