Bonjour à tous et à toutes,
Roger2327 m’a réalisé un code qui me réduit le temps de traitement pour un nombre partiel de colonne (véritable magicien ce Roger), par contre il s’arrête en cours car j’ai le micro qui manque de ressource (il a du mal à supporter 8000 lignes et 1000 colonnes).
Si quelqu’un pouvait passer le code en variables tableaux ce serait l’idéal, j’ai mon projet qui stagne depuis plusieurs semaines à cause du même problème et je n’ai pas le niveau pour le réaliser.
J’ai placé un fichier exemple en version 2003 pour toucher plus de personne alors que le fichier initial est en version 2007.
Avec le programme de Roger le temps de traitement de 1000 colonnes est de 17000 sec lorsqu'il ne plante pas (manque de resource). C'est quand même mieux que Le programme initial qui lui mettait 49000 sec.
Explication sur le fonctionnement
Etape1 : sélection de la 1° colonne (AW20 :AW79), sur ces données j’applique la formule B20+sin(AW20/H), cette formule est glissée jusqu’en 79 : H étant un nombre allant de 0.001 à 0.5 avec un pas de 0.001 (boucle).nota : il n’y a rien en colonne B lors de la sélection de la première colonne, l’avantage est de garder toujours la même formule.
Etape 2 : Sur chacune des 500 valeurs de H j’applique le test suivant =>58 * ((30 * (Moyx - Moyz) ^ 2) + (30 * (Moyy - Moyz) ^ 2)) / (DSx + DSy).
Etape3 : Le résultat du test est gardé en mémoire et a la fin des 500 tests, je relance la formule B20+sin(AW20/H) toujours sur la première colonne avec la valeur de H qui a donné le résultat max du test. Cette valeur de H sera copiée en H1
Etape 4 : Le résultat de la formule est copié en B20 :B79 dans le but d’incrémenter le test pour les prochaines colonnes
Retour a l’étape 1 avec passage sur la colonne AX20 :AW79
Concernant l’origine des formules de la ligne 20, il s’agit de sommes de combinaisons. Il y a un tableau de 14 mesures par ligne (observations) et je dois créer 62 attributs constitués de 1000 combinaisons. Cette partie est traitée en manuel, j’ai donc 62 fichiers avec 1000 colonnes à traiter).
Cordialement
Roger2327 m’a réalisé un code qui me réduit le temps de traitement pour un nombre partiel de colonne (véritable magicien ce Roger), par contre il s’arrête en cours car j’ai le micro qui manque de ressource (il a du mal à supporter 8000 lignes et 1000 colonnes).
Si quelqu’un pouvait passer le code en variables tableaux ce serait l’idéal, j’ai mon projet qui stagne depuis plusieurs semaines à cause du même problème et je n’ai pas le niveau pour le réaliser.
J’ai placé un fichier exemple en version 2003 pour toucher plus de personne alors que le fichier initial est en version 2007.
Avec le programme de Roger le temps de traitement de 1000 colonnes est de 17000 sec lorsqu'il ne plante pas (manque de resource). C'est quand même mieux que Le programme initial qui lui mettait 49000 sec.
Explication sur le fonctionnement
Etape1 : sélection de la 1° colonne (AW20 :AW79), sur ces données j’applique la formule B20+sin(AW20/H), cette formule est glissée jusqu’en 79 : H étant un nombre allant de 0.001 à 0.5 avec un pas de 0.001 (boucle).nota : il n’y a rien en colonne B lors de la sélection de la première colonne, l’avantage est de garder toujours la même formule.
Etape 2 : Sur chacune des 500 valeurs de H j’applique le test suivant =>58 * ((30 * (Moyx - Moyz) ^ 2) + (30 * (Moyy - Moyz) ^ 2)) / (DSx + DSy).
Etape3 : Le résultat du test est gardé en mémoire et a la fin des 500 tests, je relance la formule B20+sin(AW20/H) toujours sur la première colonne avec la valeur de H qui a donné le résultat max du test. Cette valeur de H sera copiée en H1
Etape 4 : Le résultat de la formule est copié en B20 :B79 dans le but d’incrémenter le test pour les prochaines colonnes
Retour a l’étape 1 avec passage sur la colonne AX20 :AW79
Concernant l’origine des formules de la ligne 20, il s’agit de sommes de combinaisons. Il y a un tableau de 14 mesures par ligne (observations) et je dois créer 62 attributs constitués de 1000 combinaisons. Cette partie est traitée en manuel, j’ai donc 62 fichiers avec 1000 colonnes à traiter).
Cordialement
Pièces jointes
Dernière édition: