Macro para ocultar modulos por grupos VBA 2007

Estoy haciendo un sistema de control de calificaciones en VBA 2007... Y posee mas de 1345 modulos... Mi pregunta es...¿.. Como puedo ocultar grupos de modulos (En este caso 100 modulos por medio de un CommandButton)... Es obvio que este boton trabaja por medio de un UserForm en cada particularidad de la interface que posee... Desearia ocultar los grupos de modulos que posee, para que no se me ralentise... Y la otra consulta es...¿.. Cómo podria llamarlos para que puedan funcionar dentro de la interface...?. Algun codigo al respecto para lograr estos dos propositos...

1 respuesta

Respuesta
2

¿Digamos qué tenes mas de 1000 módulos con código?.
¿Por qué no pusiste el código en menos cantidad de módulos?. ¿Es tan extenso el código en cada uno de ellos?.

Saludos...gracias por tu respuesta...bueno en realidad he estudiado el limite de capacidad de los modulos, pero al parecer existe un limite que hace de que a mayor numero de modulos que esten visibles,....es menor la velocidad de interface que puede poseer un sistema porque lo ralentiza y hasta puede que se cuelgue,...el dilema es como puedo ocultar y llamarlos para que pueda existir un control de manejo de estos modulos y que haga de que no se cuelgue el sistema ya que el sistema tiene 7.75 gigas de capacidad....Algun codigo al respecto...?...por fa....Muchas gracias....

Desconozco el propósito del archivo con el que trabajas, pero yo empezaría por bajar el tamaño del mismo. Es decir, que si tenes 7GB en un archivo de Excel, es muchísima, muchísima información, y no imagino forma de llegar a tanto, a menos, que dicho archivo contenga imagenes u otros archivos de mucho peso. En ese caso lo que yo haría, sería quitar todos esos archivos de tanto peso a una carpeta, y que el Excel los levante desde ahí, lo cuál no es muy complicado pero sí te va a dar trabajo.
Por otro lado, otra solución que le daría, es dividir el archivo en varios archivos, por ejemplo, uno que sólo tenga el menú con las herramientas usadas habitualmente, y en caso de que se necesiten otras, que se habra el otro archivo cuando sea necesario.
Pero igual me llama poderosamente la atención que tengas un archivo de ese peso, recuerdo que tenía un excel de 32mb en una PC de oficina y se demoraba mucho en abrirlo, no me imagino la experiencia que tendría el usuario con un archivo de 7GB, una locura ja

Creo que me estoy confundiendo, no estás hablando de los módulos para insertar código de programación, ¿sino de alguna herramienta que usas dentro de una planilla de excel verdad?

Hola...gracias por tu respuesta..,pero te comento, es un sistema de contro de calificaciones y es obvio que tiene ese peso, por imagenes, botones que llaman modulos de codificacion, contenedores osea formularios, videos, controles de USERFORM  de multipestañas, entre herramientas de mantenimientoos y otras cosas...me inclino porque los grupos de modulos esten en carpetas segun su papel de ejecucion.tomando en cuentas los niveles de desarrollo para INICIAL, PRIMARIA, SECUNDARIA, y BACHILLERATO....cada uno de estos niveles son en diferentes archivos de VBA 2007...te doy la razon pirque por algo eres un buen experto...pero ayudame en algun codigo para que estos modulos reposen dentro de alguna carpeta y llamarlos por medio de un codigo para que mi sistema no se me ralentice y otro codigo para que estos modulos vuelvan a su sitio cuando salga del sistema...espero haberme ecplicado bien.. y muchas gracias por tu apoyo...

Perdón la demora.
Es la primera vez que se me presenta una duda de éste tipo y nunca tuve que lidiar con dicho problema. Lamento decirte que al menos yo, no pude encontrar la solución que vos buscas.

Lo único que puedo hacer, es recomendarte que trabajes en dividir el archivo en otros mas pequeños y quitar sus elementos pesados. Como dije en un comentario anterior, quitaría todas las imagenes y videos y los tendría en una carpeta, lo cuál también te daría otra ventaja. Por ejemplo, si tenes las fotos de 20 chicos de un curso en una carpeta y el excel los levanta de ahí, siempre el excel va a trabajar con el nombre del archivo que tenga cada foto. Si deseas actualizar alguna o varias fotos de ese curso, solamente hay que reemplazarlas en la misma carpeta con el mismo nombre. Esto es algo que puede hacerlo cualquier usuario sin siquiera tener que abrir el excel, e incluso, te ahorrarías toda la interfaz gráfica que deberías crear para cambiar imagenes viejas por nuevas.

Por otro lado, si los niveles Inicial, Primaria, Secundaria y Bachillerato no tienen relación entre sí, esos podrían representar 4 excel distintos, para no tener que cargar toda la información en uno sólo.

En el caso de que tus archivos tengan relación entre sí, recordá que excel puede abrir y leer información de otros archivos excel. Por ejemplo, tendría un archivo para cada nivel con los datos de cada uno. Pero si en un momento tenes que hacer una estadística de todos los alumnos, con una función podes ir abriendo uno por uno y tomando solamente los datos que necesitas.

Se que tu idea sería una solución para el trabajo que ya tenes corriendo en vez de cambiar todo, pero lamentablemente de mi parte, creo que no vas a poder solucionar el problema de la fluidez del archivo, porque los módulos son espacios de código que deben y están a disposición en todo momento, entonces, por más que los ocultes o los organices en carpetas o como sea, van a estar siempre en memoria a disposición de la aplicación, para usar sus funciones y subrutinas.

Y te comento que en estos momentos estoy llevando a cabo 3 proyectos que me tienen la cabeza quemada, así que si vas a aplicar esas ideas que te puse anteriormente, no voy a poder facilitarte el código porque no lo tengo a mano, debería volver a investigar y buscar todo eso y la verdad que no tengo tiempo lamentablemente. Sólo te aviso, para que no intentes encarar unos cambios tan importantes sin antes haber investigado lo necesario para hacerlo.

Saludos y espero que puedas llegar a una solución satisfactoria.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas