Limpiar hoja de códigos inútiles

5 envíos / 0 nuevos
Último envío
Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Limpiar hoja de códigos inútiles

Hola

 

Soy un descuidado, y voy programando a empujones y sin ninguna planificación previa.

 

Como consecuencia de esto, es posible que algunas subrutinas realmente no se utilicen nunca en la hoja que tengo abierta.

En otros entornos de programación sé que hay algunos métodos para localizar las subrutinas que nunca son ejecutadas a lo largo del código.

¿Es posible hacer esto en Excel? ¿Hay alguna orden de menú o de otra forma que sirva para localizar variables nunca utilizadas, trozos de código que no se utilizarán nunca, subrutinas que no son llamadas desde ningún sitio?

 

Saludos

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 3 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
MZTools

prueba con esta herramienta MZTools, que es freeware para VBA

http://www.mztools.com/v3/mztools3.aspx

no es perfecto, pero tiene utilidades interesantes.

Para esto que comentas, tiene una utilidad denominada Revisar código fuente, que te dice variables que no se utilizan y cosas por el estilo.

Haciendo doble clic sobre un resultado salta hasta el lugar del código donde se encuentra lo que ha encontrado.

Si lo pruebas, cuéntanos qué tal te ha resultado.

revisar código VBA con MZTools

 

------
Ya sé Excel, pero necesito más.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: MZTools

Muchas gracias. Lo probaré.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Re: MZTools

Bueno, eso me busca variables declaradas y no utilizadas.

No encuentra lo contrario, es decir, variables utilizadas y no declaradas. Sería útil porque cuando utilizas una variable que no ha sido declarada, se declara automáticamente como variant, con el consiguiente uso de memoria superior a según qué tipos de otras variables.

 

Tampoco me hace un seguimiento de procedimientos o métodos escritos y a los que no se les llama desde ningún lado, que es lo que yo pretendía.

Lo más parecido que he encontrado es la opción "Procedimientos llamantes", pero es individual del procedimiento en el que se encuentra el cursor, por lo que debería hacerlo en todos los procedimientos uno por uno, y como que no.

 

De todas maneras, parece que hay algunas cosas interesantes. Lo dejaré instalado porque seguro que lo utilizo.

 

 

Un saludo

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 3 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Re: MZTools

respecto de las variables, hace tiempo que opté por forzar la declaración de todas las variables con 

Option Explicit

así tengo que declarar todas y cada una de las variables que utilizo.

 

Si añades ahora, a toro pasado, Option Explicit al principio de tu código y depuras el código te aparecerá un error por cada variable no declarada. Puedes pasar una tarde entretenida con esto.

 

Respecto de los procedimientos, es que se pueden llamar desde muchos sitios, desde otro procedimiento, pero también desde un botón en la hoja (ya sea control activeX, que sí tiene un código, pero puede ser un control de formulario, donde la macro asociada es una propiedad del botón) incluso se pueden ejecutar desde el listado de macros del libro o desde un botón personalizado de la cinta de opciones, con lo cual es digamos a petición del usuario, no sigue ninguna lógica. Vamos, que el hecho de que no se llame desde otro lugar del código no quiere decir que no se utilice.

 

------
Ya sé Excel, pero necesito más.