cs_bambival
Messages postés6Date d'inscriptionmardi 24 février 2009StatutMembreDernière intervention 1 septembre 2009
-
1 sept. 2009 à 11:07
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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)