[Résolu] Pb de vitesse d'exécution

calouuuu

XLDnaute Nouveau
Bonjour le forum,

Je m'adresse directement à vous en désespoir de cause après avoir codé, re-codé, trituré, cherché et maintenant déprimé...

L'objet de mon désespoir se trouve en pièce jointe.

Le but de la manoeuvre est de se connecter à une base de données, de contrôler d'écarter les infos incorrectes et enfin de consolider les informations. C'est sur cette dernière étape (fonction "rapp_final") que ma macro met un temps infini que je n'arrive pas à réduire => 7 minutes pour 400 enregistrements environ pas glop :(

Je vous joint un deuxième fichier de résultat pour éviter les 10mn d'éxécution :eek:

Dans le détail, cette fonction prend les données validées présentes dans la feuille "Rapport" et consolide les informations dans l'onglet "Détail" selon 3 modèles de lignes en fonction de la rupture de clef.
Une ligne de modèle comporte près de 270 colonnes utilisées.

Afin de simplifier le debug de la macro j'ai ajouter des traces dans l'onglet paramètres et les résultats relevés sur la ligne 10 sont assez parlants :
les 100 premiers enregistrements sont traités en 7 secondes
les 100 suivants en 46 secondes
les 100 suivants en 1mn 29
les 100 suivants en 4 mn 46... les amateurs des courbes exponentielles se réjouieront mais pas moi !!!

Les fichiers transmis en PJ sont bien évidement allégés.

Bref, la commande qui pose pb est la commande de copie qui se trouve dans ctrl_clef_grp

J'ai bien évidement ajouter les commandes
application.calculation = xlcalculationmanual
application.screenupdating = false
application.enableevents = false
application.displayalerts = false

et même
sheet.enableformatconditionscalculation = false
sheet.enablecalculation = false

Maintenant je sèche........ HELP :confused:
 

Pièces jointes

  • forum.zip
    967.2 KB · Affichages: 26
  • forum.zip
    967.2 KB · Affichages: 21
  • forum.zip
    967.2 KB · Affichages: 23
Dernière édition:

calouuuu

XLDnaute Nouveau
Re : Pb de vitesse d'exécution

Ok, je pense que rien que d'écrire sur le forum ça ouvre les chakras ;o)

Pur vous résumé le pb, j'ai détecté encore dans ma macro des lignes de copy sous la forme
range.copy
range.insert after

j'ai modifier toutes les lignes en
range.copy destination:=xxxx

et là miracle, la macro passe de +de 7 mn à.......... 3 secondes et oui.

A faire passer.
 

Discussions similaires