Macro qui "mouline" trop longtemps

Bonsoir,

Le code inscrit dans le fichier ci-joint fonctionne bien, en tous cas lorsque je fais des essais avec peu de données, par exemple si je n'inscris que 3 ou 4 lignes dans les colonnes M et N de la feuille "Tests".

Par contre, si je veux contrôler plus de cas possibles - tels qu'inscrits dans le fichier ci-joint - ma macro dure une éternité ; je n'en ai d'ailleurs jamais vu le bout (j'ai toujours dû stopper le déroulement de la macro car ça dure plusieurs minutes et que je ne sais pas si elle n'est pas simplement "plantée").

Pouvez-vous m'indiqur comment je pourrais réduire la durée de ce code ?

49projection.xlsm (55.09 Ko)

Bonsoir,

essaie avec (en début de macro) :

Application.Calculation = xlCalculationManual

Et (en fin de macro) :

Application.Calculation = xlCalculationAutomatic

Ca prend tout de même un certain temps pour générer les ~50'000 lignes mais ça fait une différence

Cordialement,

Bonsoir

D'après ce que j'ai compris, il ne faut pas enlever me mode de calcul en automatique car il se sert des résultats de calculs de la page "Projections" pour remplir la page "Tests"

Moi j'ai modifié la macro

Je passe par un tableau

Dans la barre de status il y a la progression du remplissage du tableau

Durée est sensiblement réduite

Je n'ai pas du tout vérifier les résultats

A voir

Bonne nuit

Salut Sébastien, Salut Banzai,

Banzai64 a écrit :

D'après ce que j'ai compris, il ne faut pas enlever le mode de calcul en automatique car il se sert des résultats de calculs de la page "Projections" pour remplir la page "Tests"

Effectivement que Banzai a raison ; dans ce cas, on ne peut pas supprimer les calculs intermédiaires qui sont copiés et reportés à chaque nouveau passage.

Par contre ton code, Banzai, réduit le temps d'un contrôle "normal" de 42'000 itérations de plus ou moins 20 minutes avec mon code à 2 minutes environ avec le tien . Gain de temps fort apréciable !! Mille mercis.

Est-ce la seule utilisation d'un tableau qui fait la majeure partie de la différence ?

J'ai malheureusement une question de plus : J'ai déplacé le code de Banzai dans mon fichier de base (qui comportait quelques feuilles supplémentaires) et à chaque fois que j'ouvre ce fichier j'ai des messaages bizarres qui apparaissent et que je n'avais encore jamais vus avec d'autres fichiers Excel. Je joins alors mon fichier complet ainsi qu'un fichier contenant les messages que je reçois à l'ouverture du premier fichier cité. Avez-vous une idée d'où vient le problème ??

A vous relire.

Mon fichier actuel :

Les copies d'écran du problème à l'ouverture :

Bonsoir

Cela va être dur

Moi avec mon 2003 et le convertisseur 2007-->2003 je n'arrive pas ouvrir ton fichier

Si tu veux que je regarde il faut le transmettre en xls

Pour les messages d'erreurs, aucune (de chez aucune) idée

Une piste : Le nombre de données pour le test est il le même ?

Pour info : Ton programme de test 3 mn (avant) 16 secondes (aprés)

C'est le tableau qui fait la différence

A suivre

Bonne soirée

Salut Banzai,

J'ai passé mon fichier avec les 42'000 lignes du contrôle de .xlsm à .xls. Du point de vue de la taille, ça passe de 3'550 Ko à 22'489 Ko. Par contre, pour les deux mêmes fichiers compressés, ça passe de 1'619 Ko à 2'678 Ko.

Voici donc ce fichier .xls en version compressée.

Bizarrement le problème à l'ouverture n'est plus présent (?) On ne va pas se prendre le chou avec ça, ton code fontionne à merveille, c'est tout ce qui compte pour moi.

Encore merci et à une prochaine fois.

Bonsoir

Rien vu de spécial

Sinon il fallait transmettre sans les résultats, c'est cela qui alourdissait le fichier

A une prochaine

Bonne nuit

Rechercher des sujets similaires à "macro qui mouline trop longtemps"