Caso extraño de VBA

10/01/2008 - 00:09 por José A. Castrejón | Informe spam
Hola buenas tardes, como dice el titulo es un caso extraño, al menos para mi.
Tengo una aplicacion con Excel Xp, tiene varios modulos y formularios y
todos funcionan sin problemapero pasa lo siguiente :
Cuando cierro el archivo, se cierra perfectamente pero aparece un formulario
de VBA pidiendome la contraseña del proyecto !..aprieto cancelar varias veces
y desaparece.
He descubierto que aun cerrando el archivo (no excel) entro al menu de
Visual Basic (Alt+F11) y el proyecto aun está ahí ! , de hecho puedo ver las
lineas de codigo de los modulos, mas no los formularios; Si trato de ver los
formularios (como obviamente no estan) me da un error "Error de E/S de
dispositivo".
Si desprotejo el proyecto VBA pasa lo mismo excepto que no me pide
contraseña, pues no la tiene.
Desgraciadamente no puedo dejar la aplicación sin protección.

Alguien sabe algo de esto ?

Saludos

Preguntas similare

Leer las respuestas

#1 Ivan
10/01/2008 - 02:05 | Informe spam
hola Jose

...pasa lo siguiente Cuando cierro el archivo, se cierra perfectamente pero aparece un formulario de VBA pidiendome la contraseña del proyecto !..aprieto cancelar varias veces y desaparece.<<<<









mientras aparece alguien que sepa lo que puede estar pasando, a mi lo
unico que se me ocurre es =>

mira a ver si tienes codigo (y que codigo es este si lo hay) en el
evento del libro: BeforeClose, y/o en Deactivate y/o en
windowDeactivate o/y en algun otro que estubiera de alguna manera
intentando manipular componentes de vba

si es asi comentas

un saluo y siento no ser de gran ayuda
Ivan
Respuesta Responder a este mensaje
#2 Héctor Miguel
10/01/2008 - 06:58 | Informe spam
hola, José !

... varios modulos y formularios y todos funcionan sin problemapero pasa lo siguiente:
Cuando cierro el archivo, se cierra perfectamente pero aparece un formulario de VBA pidiendome la contrasena del proyecto !
aprieto cancelar varias veces y desaparece.
He descubierto que aun cerrando el archivo (no excel) entro al menu de Visual Basic (Alt+F11) y el proyecto aun esta ahi !
de hecho puedo ver las lineas de codigo de los modulos, mas no los formularios
Si trato de ver los formularios (como obviamente no estan) me da un error "Error de E/S de dispositivo".
Si desprotejo el proyecto VBA pasa lo mismo excepto que no me pide contrasena, pues no la tiene.
Desgraciadamente no puedo dejar la aplicacion sin proteccion.
Alguien sabe algo de esto ?



si tienes "varios" modulos y formularios y cuando cierras el libro (al fin de cuentas) "este" sigue ahi (en el editor de vba)
y si (ademas) "desaparecen" los objetos userform y obtienes errores de entrada/salida en dispositivos...

1) no todo esta funcionando "perfectamente y sin problemas" (aunque esto ya es obvio)

2) (probablemente) no se estan "destruyendo" las instancias de los formularios (en el codigo), es decir...
es posible que estes mostrando varios formularios (o varias veces) y/o los mantienes ocultos (mientras no se ocupan)
(pero) cuando sales de tu aplicacion, alguno/s se habra/n quedado "en memoria" (si no usas el "Unload <formulario>")

3) tambien existe la posibilidad de que "ese" archivo haya caido en (o este muy cerca de) la corrupcion (existen diversas causas)
lo que haria necesario una (re)creacion copiando (todos) los objetos a un libro nuevo (como empezar desde ceros)

4) otra posibilidad seria si (por algunos "excesos") la memoria este quedando disminuida y/o no se borren los archivos "temporales"

(probablemente existan otras causas, pero creo que puedes empezar por revisar tu codigo con lo anterior y lo comentado por Ivan)

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Juan Pablo González
10/01/2008 - 15:11 | Informe spam
José,

Tienes instalado Google Desktop? me parece acordarme que ese problema
ocurre, o ocurría, cuando Google Desktop estaba instalado en el sistema.

Saludos,

Juan Pablo González

José A. Castrejón wrote:
Hola buenas tardes, como dice el titulo es un caso extraño, al menos para mi.
Tengo una aplicacion con Excel Xp, tiene varios modulos y formularios y
todos funcionan sin problemapero pasa lo siguiente :
Cuando cierro el archivo, se cierra perfectamente pero aparece un formulario
de VBA pidiendome la contraseña del proyecto !..aprieto cancelar varias veces
y desaparece.
He descubierto que aun cerrando el archivo (no excel) entro al menu de
Visual Basic (Alt+F11) y el proyecto aun está ahí ! , de hecho puedo ver las
lineas de codigo de los modulos, mas no los formularios; Si trato de ver los
formularios (como obviamente no estan) me da un error "Error de E/S de
dispositivo".
Si desprotejo el proyecto VBA pasa lo mismo excepto que no me pide
contraseña, pues no la tiene.
Desgraciadamente no puedo dejar la aplicación sin protección.

Alguien sabe algo de esto ?

Saludos


Respuesta Responder a este mensaje
#4 Ivan
10/01/2008 - 17:50 | Informe spam
hola de nuevo

solo para añadir a las palabras de Hector una forma de verificar/
comprobar el punto 2 de los que te comenta (que, como el mismo apunta
'probablemente sea la causa)

si quieres prueba a descargar todos los formularios en el evento
BeforeClose del libro (modulo Thisworkbook) y una vez comprobado que
no hay nada en el que pudiera ser la causa, anteponiendoles un error
resume next, por si ya estuvieran descargados (NOTA; creo que en
BeforeClose todavia se pueden descargar de la memoria, aunque no estoy
100x100 seguro)

algo asi:

On Error Resume next
Unload Userform1
Unload Userform2
Unload TuFormulario
Unload ..

de todas formas, si comprobaras que este es el problema [creo que]
deberias de revisar tus codigos y a ser posible ir descargando los
formularios cuando realmente dejes de necesitarlos y no mantenerlos
cargados (aunque esten ocultos) durante toda la ejecucion de la
aplicacion. Para ello ya sabes, el mencionado unload Formulario es
suficiente

por otro lado, y si estoy equivocado agradecere quue me corrijais,
aunque un formulario este descargado, la simple mencion/manipulacion
de alguno de sus controles podria volver a cargar el formulario aunque
no sea esa nuestra intencion (evidentemente no tendria sentido, pero
en el batiburrillo que se nos forma en los modulos cuando estamos
aprendiendo no seria raro que algo se colara)

bueno, solo por si lo desconoces y ya de paso quitarle un poco de
'curro' a Hector (y porque no decirlo, por si estoy equivocado obtener
una aclaracion y no repetir error en el futuro)

en cuanto a las palabras de Juan Pablo, si no me equivoco (soy un poco
cazurro) yo tengo instalada la barra google y a mi no me afecta, al
menos en este sentido. Aunque a lo mejor no hablamos de la misma barra

un saludo
Ivan
Respuesta Responder a este mensaje
#5 José A. Castrejón
10/01/2008 - 18:33 | Informe spam
Primero que nada muchas gracias por sus aportaciones, respondiendo :

No tengo nada en los eventos beforeclose o deactivate, de hecho los eventos
no estan puestos.
Por otro lado tampoco tengo instalado el Desktop de google, trato de
mantener mi equipo libre de "complementos".
Cuando digo que la aplicacion funciona bien, me refiero a que no tengo
problemas de operacion, hace lo que debe hacer, en el momento en que debe
hacerlo. Este problema empezo hace unos dias. Copie el archivo a una portatil
y pasa lo mismo.
Como soy un poco paranoico a la hora de estar depurando, siempre tengo
copias de respaldo de "antes de los cambios". La version anterior no presenta
este problema. Creo que el problema debe ser como dice Hector algun problema
de corrupcion de archivos o memoria.
Uso varios formularios en diferentes instancias pero los descrago con unload
me.
No se si afecte lo siguiente, en casi todos los formularios que uso, los
cargo con :

catalogo.show

y no hago :
load catalogo
catalogo.show

EL ultimo cambio que hice fue poner un checkbox en una hoja, lo que hace es
que si esta prendido y al apretar un boton se despliega un formulario de
recepcion de pago. Es una aplicacion de ventas de mostrador.

Hector sugiere que no se esten borrando archivos temporales, lo cual podria
ser, y esto me lleva a la pregunta ¿hay alguna manera de borrarlos desde el
evento before close o algo asi?
Lo que empiezo a hacer ahora es a "comparar" la version que funciona y la
que da problemas, para ver si encuentro "algo".
El archivo sin datos mide 560 KB.

Voy a probar lo que sugiere ivan en el evento before close.
Aunque estoy tentado a rehacer la aplicacion desde los ultimos cambios, pero
de esa forma no sabre que paso o puede pasar de nuevo.
Ya les comentare lo que investigue el dia de hoy.
Saludos y gracias

José A. Castrejón


Hola buenas tardes, como dice el titulo es un caso extraño, al menos para mi.
Tengo una aplicacion con Excel Xp, tiene varios modulos y formularios y
todos funcionan sin problemapero pasa lo siguiente :
Cuando cierro el archivo, se cierra perfectamente pero aparece un formulario
de VBA pidiendome la contraseña del proyecto !..aprieto cancelar varias veces
y desaparece.
He descubierto que aun cerrando el archivo (no excel) entro al menu de
Visual Basic (Alt+F11) y el proyecto aun está ahí ! , de hecho puedo ver las
lineas de codigo de los modulos, mas no los formularios; Si trato de ver los
formularios (como obviamente no estan) me da un error "Error de E/S de
dispositivo".
Si desprotejo el proyecto VBA pasa lo mismo excepto que no me pide
contraseña, pues no la tiene.
Desgraciadamente no puedo dejar la aplicación sin protección.

Alguien sabe algo de esto ?

Saludos


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida