aide pour optimisation programme - vitesse macro

juju44

XLDnaute Nouveau
Bonjour à tous,

Je viens de finaliser mon projet qui consistait à afficher des volumes, des répartitions, des évolutions,...sur une zone géographique et sur une zone de comparaison. Bref, tout fonctionne, cependant je souhaiterai optimiser les temps de traitement des macros, qui je trouve, sont de plus en plus lentes au fur et à mesure que je les exécute.

Débutant en VB au début de ce projet, et toujours un peu dans le même cas aujourd'hui, j'ai conscience que mes macros ne sont pas écrites "correctement", de façon à optimiser mon programme.

Je fais donc appel à vos lumières pour m'aider dans cette phase d'optimisation.

Je vous joins le fichier excel de mon projet, fichier que j'ai grandement épuré afin de pouvoir le mettre en pièce jointe, et également, dans un souci de confidentialité.

Ainsi , n'apparaitront pas les libellés des variables, ni tout un tas de zones géographiques (je me suis restreint ici aux départements, régions), ni les textes de présentation et de définitions, ni certaines variables, ni les véritables en-tête de page, ni les titres des graphiques, etc etc...

PS: le bouton nuage mène vers une page de graphiques permettant, en cliquant sur les checkbox d'afficher ou non les zones géographiques et de mettre à l'échelle le graphique suivant les zones affichées.

Je vous remercie d'avance.
 

Pièces jointes

  • test_optim.zip
    291 KB · Affichages: 44
Dernière édition:

juju44

XLDnaute Nouveau
Re : adie pour optimisation programme - vitesse macro

Bonsoir,

Vu le nombre de codes qu'il y a dans ton fichier, peut-être que ce serait intéressant de savoir lesquels te posent problème... parce que si il faut tout auditer...

Merci de vous pencher sur mon sujet.

Ce que je trouve "lent" et qui me gène le plus, c'est au niveau des nuages de points (bouton "Nuage" sur la page d'accueil) : le fait de cliquer sur les checkbox pour afficher ou non les zones sur les graphiques, le temps de traitement est long je trouve.

Pour le reste, j'ai aussi l'impression que quand je choisi d'afficher les informations pour une zone, que je clique ensuite sur "retour" pour choisir une nouvelle zone pour afficher un nouveau rapport, Excel met plus de temps à m'afficher les données, et ainsi de suite si je re-sélectionne des zones. Par contre si je ferme Excel, que j'ouvre de nouveau le fichier et que je sélectionne une zone pour afficher les info, la vitesse semble normale. Problème de mémoire ?!?

Merci encore.
 

Gardien de phare

XLDnaute Accro
Re : aide pour optimisation programme - vitesse macro

Bonsoir juju,

Normalement, ici, les réponses fusent assez vite... Tu n'as sans doute pas mis toutes les chances de ton coté : pour comprendre ton classeur, il faut commencer par afficher toutes les feuilles masquées et tu as pléthore de codes dont il faut reconstituer l'enchainement !
Le debogage et l'optimisation de codes que l'on découvre, ce n'est pas un exercice simple et quand, comme moi, on en fait pas mal au taf, on a pas toujours envie de s'y remettre le soir.
Pour ce que j'en ai vu, ton classeur réel doit être assez lourd et beaucoup solliciter les ressources de la machine compte tenu des mises en formes et graphiques nombreux.

Je peux te donner quelques pistes : application.screenupdating à "false" en début de chaque procédure qui génère des modifications à l'écran, souvent l'accélération est spectaculaire (ne pas oublier de le mettre "true" en fin de procédure !), passer en calcul manuel en début si la procédure touche des zones avec des formules complexes (idem rétablir en fin de procédure bien sur), pareil avec les évenements (enable events).

Une autre piste, stocker des valeurs dans des Array pour remplacer des boucles.

HTH
 

Discussions similaires

Statistiques des forums

Discussions
312 503
Messages
2 089 059
Membres
104 014
dernier inscrit
Aurélie MONTEIL