Macro lente - optimisation ?

Bonsoir le forum

dans le fichier suivant, le bouton "Générer les fiches" exécute une macro qui copie x fois une feuille modèle. Ce modèle contient des graphiques.

L’exécution de cette macro est lente (environ 2 minutes pour créer 20 fiches).

De même, pour effacer les feuilles créées, la macro est longue à s’exécuter.

Pourriez-vous me dire si le code est optimisable ?

Merci.

Bonjour

Ton code me semble tout à fait correct.

Mon PC a mis 7 secondes pour créer toutes tes fiches.

Le tien me semble un peu paresseux s'il met 2 minutes §

Bye !

tout a fait d'accord avec JB

le mien met 3,2 secondes pour créer les fiches

et 0,1 seconde pour les effacer

nettoie la machine

A+

Merci pour vos retours.

Si tous les noms sont remplis (soit 44 fiches à créer), mon PC met 2' pour les créer et plus d'1' pour les effacer.

Je suis sous Office 2007, mon PC a qq années (pentium 4, 3GB RAM) et n'est pas infecté.

Que veux tu dire par nettoie le PC ? Les services en cours d'éxécution ?

Est ce que le fait d'éxécuter les macros plusieurs fois à la suite peut ralentir son traitement ?

Merci en tout cas pour vos retours.

bonjour,

Est ce que le fait d'exécuter les macros plusieurs fois à la suite peut ralentir son traitement

Oui, le temps double à chaque fois...

C'est plutôt un problème de conception : ça ne sert à rien de créer 40 fiches différentes mais vides.

1 seule fiche que tu remplirais successivement avec les données voulues semble bien suffisante.

Avec Excel il faut éviter de créer de multiples graphiques, de multiples boutons, puis les effacer, puis les recréer... (car Excel grde toujours un petit peu de tout ça en mémoire dans un coin...

Au pire, -ne me fais pas dire ce que je n'ai pas dit- au pire dis-je, si tu ne sais pas faire autrement crée tes 44 fiches et ne les supprimes plus.

A+

Merci une nouvelle fois pour les retours.

Je dois créer ces feuilles vides pour que les utilisateurs les remplissent individuellement au fur et à mesure.

Pour la conception du fichier c'est ce qu'il m'est apparu de plus simple à faire (en tout cas avec mon faible niveau VBA).

Comme je teste pas mal d'autres idées dessus, au fur et à mesure les macro me paraissaient plus longue à s'exécuter. Je n'ai donc pas rêver.

Pour la suppression des fiches, avec une utilisation normale ça arrivera peu souvent. Mais pour la création, j'avais besoin de savoir si c'était mon PC qui avait un souci...

Si Excel garde en mémoire un certain nombre de chose, existe-t-il un moyen de lui rafraichir la mémoire ?

Enfin, pour renseigner l'utilisateur du temps écoulé lors de la création des fiches, j'ai tenté d'ajouter une barre de progression à l'aide de qq tuto sur le forum, mais je n'y parviens pas. Est ce qu'un utilisateur expérimenté a ça dans ses outils ?

Merci encore

JB

Bonjour,

je pense que Galopin01 a raison

d'après ce que j'ai vu tu travailles dans un lycée avec une quarantaine "d'élèves"

tu entres le Nom, Prénom et Classe manuellement un par un dans les cellules en "A" et "D"

et ensuite tu clique sur générer les fiches.

pourquoi n'utilises tu pas 2 TextBox dans un Userform qui te mettrais le Nom, Prénom en "A" et Classe en "D"

avec un TextBox tu les rentre aussi manuellement

et ensuite tu crée ta nouvelle feuille ? et idem pour la suppression?

ça t'éviterais déjà plusieurs Bugs qu'il y a. à savoir:

  • quand tu cliques plusieurs fois sur "générer les fiches", ça te rajoute des feuilles "modèle"
  • ensuite quand tu supprimes ça efface carrément ta feuille "Liste" et "modele"
et il reste juste la feuille avec le dernier nom de la liste. et le problème c'est que ça s'enregistre.

- quand tu efface tout tu n'efface pas les Noms

mais ça n'enlève en rien le fait que ta macro soit si longue....

quand je disais nettoie la machine, je pensais au ventilateur (derrière) qui s'encrasse très facilement,

donc fait chauffer le cpu et fini par ralentir l'ordi.

A+

mais je t'envoie quand ton fichier avec une barre de progression

Rechercher des sujets similaires à "macro lente optimisation"