[Déplacé VB6 --> VBA] Macro Excel devient lente

cs_bambival Messages postés 6 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 1 septembre 2009 - 1 sept. 2009 à 11:07
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 1 sept. 2009 à 13:25
Bonjour a tous,
Depuis quelques temps je fais face aune difficulte a laquelle je ne trouve pas de solution.
En effet j ai realise une macro pour le traitement des donnes contenu ds des fichier csv et txt.
l'execution de la macro initialement prenait 6 mn et sans que je ne comprenne pourquoi le temps d execution est devenu de plus en plus long avec parfois des echecs d'execution.
Maintenant la macro prend au mois 20 mn pour s execute et ds ce cas je ne doit rien faire d autre sur la machine meme ouvrir un autre fichier dossier ou application car la macro va se plante et va me donner l erreur suivante :
run-time-error '-2147417848(80010108)'
Method 'Replace' of object 'Range' Failed.

Cette macro marche bien sur les autres PC sauf le mien,
au debut j'ai meme du acheter un nouveau PC car l ancien etait tres vieux et je croyais que cela pouvait etre la cause.

Est ce que quelqu'un peut m aider a comprendre de ce qui ne va pas et comment resoudre ce problem.

Merci d'avance.

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 sept. 2009 à 13:25
Salut
Il faudrait surveiller la quantité de mémoire du process Excel pendant que la macro tourne :
"Gestionnaire de tâches" + onglet "Processus" + colonne "Util. mémoire"
Si tu vois ce chiffre grimper au fur et à mesure sans jamais retomber, c'est que ton programme a un problème de structure : il mémorise des infos sans jamais les décharger, ce qui ne serait pas normal.
Sinon, quelle quantité de mémoire ton PC a t-il + Quel Windows ?
Jette un oeil aussi au fichier de swap : "Poste de travail" + Propriétés + onglet "Avancé" + bouton "Paramètres" de Performances + onglet "Avancé" + bouton "Modifier" de la "mémoire virtuelle" (respire) : Vérifie qu'aun moins un de tes disque héberge un fichier d'échange + que la taille de ce fichier d'échange soit suffisant ou "Taille gérée par le système" - 3Go à 4Go est un minimum.
Dans ton fichier Excel, au début de ta macro, oblige Excel à ne plus calculer automatiquement les cellules : Menu "Outils" + "Options" + onglet "Calcul" + choisir "sur ordre"
En fin de macro, tu peux le rétablir en "Automatique" (Tout ceci peut être fait par la macro elle même --> Voir enregistrer une macro pendant que tu fais la manip à la main)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous