Bonjour,
Contexte du problème :
il se passe un truc bizarre sur une macro que j'ai crée.
Cette macro doit traiter de gros fichiers, faire des tris sur les données, créer de nouveaux classeurs avec ces tris....
Pour exécuter un grand nombre de macros d'un coup, j'ai une procédure "enchainement final"(EF) qui regroupe 3 autres procédures "enchainement premiere série"(1S dans la suite), "enchainement deuxième série"(2S), "enchainement troisième série".(3S) Ces 3 procédures font elles-mêmes appel à d'autres procédure.
E2S et E3S doivent nécessairement être appelées après 1S pour fonctionner.
énoncé du problème
-Si j'exécute 1S puis 2S puis 3S, alors j'ai les résultats suivant :
1S : X secondes, 2S moins de 10 secondes, 3S Y secondes.
-Si j'exécute EF, la procédure 1S met X secondes environ, 2S met environ 100 secondes à s'exécuter et 3S met Y secondes environ à s'exécuter
Or EF ne fait qu'une seule chose : exécuter 1S puis 2S puis 3S. Bizarre non ?
Remarques :
Donc tant qu'à faire, je souhaiterais que ma procédure 2S puisse mettre son temps optimum à être exécuté.
NB : dans le cas où il y a un problème, je m'apperçois que la macro semble travailler "pour rien" alors qu'elle a fini son travaille de recopiage. Je vois le petit "recalc" qui avance lentement alors que rien ne semble se passer.
Si vous avez des idées sur cette différence de temps d'exécution, je suis preneur.
Pour le code, je ne sais pas trop quoi vous mettre, donc je mets la procédure qui rassemble les 3 autres (pour voir qu'il n'y a qu'un enchainement de procédures dedans):
Restant à votre disposition pour interagir sur vos propositions.
Et merci d'avance,
GiHesse
Contexte du problème :
il se passe un truc bizarre sur une macro que j'ai crée.
Cette macro doit traiter de gros fichiers, faire des tris sur les données, créer de nouveaux classeurs avec ces tris....
Pour exécuter un grand nombre de macros d'un coup, j'ai une procédure "enchainement final"(EF) qui regroupe 3 autres procédures "enchainement premiere série"(1S dans la suite), "enchainement deuxième série"(2S), "enchainement troisième série".(3S) Ces 3 procédures font elles-mêmes appel à d'autres procédure.
E2S et E3S doivent nécessairement être appelées après 1S pour fonctionner.
énoncé du problème
-Si j'exécute 1S puis 2S puis 3S, alors j'ai les résultats suivant :
1S : X secondes, 2S moins de 10 secondes, 3S Y secondes.
-Si j'exécute EF, la procédure 1S met X secondes environ, 2S met environ 100 secondes à s'exécuter et 3S met Y secondes environ à s'exécuter
Or EF ne fait qu'une seule chose : exécuter 1S puis 2S puis 3S. Bizarre non ?
Remarques :
Donc tant qu'à faire, je souhaiterais que ma procédure 2S puisse mettre son temps optimum à être exécuté.
NB : dans le cas où il y a un problème, je m'apperçois que la macro semble travailler "pour rien" alors qu'elle a fini son travaille de recopiage. Je vois le petit "recalc" qui avance lentement alors que rien ne semble se passer.
Si vous avez des idées sur cette différence de temps d'exécution, je suis preneur.
Pour le code, je ne sais pas trop quoi vous mettre, donc je mets la procédure qui rassemble les 3 autres (pour voir qu'il n'y a qu'un enchainement de procédures dedans):
Sub EnchainementFinal()
'ma premiere procédure
EnchainementPremiereSerie
'ma deuxième procédure, qui pose un problème si elle est exécutée dans ce contexte mais n'en pose pas sinon
EnchainementDeuxiemeSerie
'ma troisième procédure
EnchainementTroisiemeSerie
End Sub
Restant à votre disposition pour interagir sur vos propositions.
Et merci d'avance,
GiHesse
Dernière édition: