Macro tres tres lente (15 secondes pour faire une action sur 16*5 cellules)

C

cyb-cd

Guest
Bonjour à tous,
je suis en train de réaliser un fichier sous excel qui permet de gagner du temps pour la correction de resultats de Tp en Biochimie.
il sagit ici de spectrophotométrie, et donc j'utilise la regression lineaire pour chaque série de résultat ainsi que le tracet de cette regression. Ces résultats etant expérimentaux, j avais besoin de pouvoir eliminer un ou plusieurs points "mauvais" pour chaque série.
Pour tout ceci, j ai reussi à realiser ce dont j avais besoin (Merci à tout les dieux du Forum... Thierry et Veriland...).
Mon dernier problème est la rapidite d'execution....
en effet, g bcp de comparaisson de checkbox et de case dans mes macros (avec des boucles en plus) et donc certaines actions mettent 15 secondes à s'executer. C long pour verifier et faire apparaitre 16 données dans une cellule ;-) ).
Le probléme c que c mon fichier complet qui est long et que même compressé il depasse les 50ko limite du forum....
Comment faire pour echanger des solutions???
une idée???
a+ et merci d avance
 
@

@+Thierry

Guest
Salut Cyb-Cd

Euf Euf, il n'y a pas de Dieu ici. Juste des gens un peu plus avancés que d'autres c'est tout.

Solutions..., oh sûrement mais sans rien voir du résultat final... Je me rappelle bien des CheckBox pour lesquels j'avais mis mon grain de sel... mais depuis de l'eau est passée sous les ponts... (et de la neige aussi)

Primo tes variables sont elles toutes déclarées proprement ?
C'est à dire comme çà :
Dim i as Byte
Dim ii as Interger
Dim oui_non as Boolean
Dim toto as String ...
etc etc
enfin ce genre de déclaration et surtout pas :
Dim i
Dim ii
etc
ou encore :
Dim i , ii, oui_non, toto as string...
ou encore :
RIEN


Ensuite dans les codes eux mêmes, as tu des macros du style

Sheets("toto").Range("A1:B16").Select
Selection.Sort ... etc...

Les Select ne servent à rien en général (sauf si on veut sélectionner !) mais comme l'enregistreur de macro les écrit... on a souvent tendance à les laisser...
au lieu d'écrire directement :
Sheets("toto").Range("A1:B16").Sort ... etc...

Et bien sûr il faut bien vérifier ce que font tes boucles... car une boucle foireuses peut tourner toute la journée !

Enfin ce ne sont que des pistes de départ... Faut voir déjà çà...

BOn App
@+Thierry
 
C

cyb-cd

Guest
Pour la déclaration de variable, je viens de vérifier, je pense avoir tout declaré (pour une boucle for i=... next, dans la declaration de variable de i g mis integer....)


, pour la suite, je n ai pas de code tel que tu les donnes, et enfin, mes boucles semblent tourner normalement et pas pour rien (enfin pour moi ;-) )....
Alors???? desolé, je sais que c est dur sans fichier exemple.... mais je débute.... et fichier trop gros)
 
C

cyb-cd

Guest
Alors, voila, en fait le fichier en question une fois compresse avec rar me donne un fichier de 49 ko (j'espère que la limite est bien de 50ko).Le probleme c ke avec zip g un fichier de 55 ko et le serveur du forum refuse les fichier autre que zip, et xls:donc pour feinter le serveur je renomme mon fichier avec extension.zip
Donc pour le visualiser, il fo le renommer en .rar à la fin à la place de .zip puis le decompresser avec winrar (désolé gpas trouve d'autre solution)

G pas encore travaillé la presentation et la notice...mais bon, cela faira l objet d'autre questions... ;-)

Pour visualiser le phénomène, aller sur le deuxieme onglet (résultats).
decocher une croix sur la ligne du bas et appuyer sur le bouton "appliquer le profil à tous les élèves" de la même page.... vous comprendrez l'ampleur de mon problème......
Merci d'avance du coup de main.....
a+
Cyb-cd
 

Pièces jointes

  • Notation-spectro-seb.zip
    48.9 KB · Affichages: 57
@

@+Thierry

Guest
Bon dans ce cas,

Envoie moi çà en BAL, avec en sujet textuellement :
"Fichier Joint pour Thierry XLD"
(sinon faudra que j'aille le récupérer dans la poubelle parmis les spams et autres Fichiers envoyés directement!)

Par contre je n'aurai pas accès à ma BAL avant que je rentre chez moi, soit vers 21:00 gmt

Je regarderai si on peut y faire quelque chose.

Sur ce, bonne journée.
@+Thierry
 
V

Vériland

Guest
Bonsoir Cyb-cd, Bonsoir Thierry et bonsoir le Forum,

En regardant ton fichier ça m'a fait penser à quelque chose ici...<http://www.excel-downloads.com/html/French/forum/read.php?f=1&i=10235&t=9979>...t'as bien avancé depuis un mois...lol...

Bon j'ai regardé c'est déjà une belle application maintenant...bon... j'comprends pas grand chose aux résultats dans le calcul du Graph...mais c'est pas l'but de ma visite...lol...

non c'est plutôt à cause des boucles For/ Next de ta macro...t'en a mis partout...lol...j'y verrai bien une Selection.Copy! à la place...ben oui ...si je comprends bien le principe, suivant la case (cochée ou non) on copie une colonne de la feuille "saisie" et on la transpose sur la feuille "résultat"...j'pense que se serait déjà un moyen pour réduire le calcul de la macro...

Bon j'n'ai pas fait la manip mais j'pense que se serait une option comme celle là que j'prendrais...à moins que Thierry ait trouvé une autre logique...lol

A+ Vériland

PS...oups! j'suis pas un dieu moi...j'suis juste un échantillon...hi hi hi
 
C

cyb-cd

Guest
je précise, c surtout le bouton "appliquer à tous les élèves" de la deuxiéme feuille qui me pose problème...remplissez le tableau avec des données, decochez l'avant dernière case en bas et appuyer sur "appliquer à tout les élèves.... il me faut 8 secondes (montre en main) pour reprendre la main sur un Athlon 1.4 ...... c long si on fait plusieurs fois l'opération...
cyb-cd
 
V

Vériland

Guest
Bonjour le Forum...

Ah ben oui Cyb-cd...j'ai bien compris ton soucis...lol...d'où m'a proposition de changer les boucles (for / next) par une Selection.Copy...à première vu chaque action sur le bouton "appliquer le profil à tous les élèves" enclenche un calcul en boucle de chaque zone...ce qui expliquerait le temps (assez long) de l'affichage...

je pense que par le principe d'un copier/coller cela irait plus vite...à la place des boucles...mais je n'ai pas essayé...lol...

A+ Vériland
 
@

@+Thierry

Guest
Salut Vériland et Cyb-Cd (et les autres qui suivent !)

Moi je t'ai renvoyé le classeur "boosté" hier-soir en BAL cyd... Je t'avoue que je n'ai pas trop de temps à consacrer pour ce truc... Mais est-ce qu'il y a un progrès ? Car je ne pense pas que ce soit les macros en elles-même, mais le déclenchement de calculs en tous genres sur la feuille à chaque actions d'un la soluce des passer en xlmanual..................

Est-ce que ma soluce t'offre un progrès ou pas ?

...
Bon App
@+Thierry
 
C

Cyb-cd

Guest
TRop drole thierry....... tu me demandes si ta modif me convient... hi!hi!hi!
Boafffff!? disans que j ai juste l impression de passer de mon vieux 486 DX33 à un pentium 12 ;-)..... Merci bcp.... par contre il va falloir que je me renseigne sur cett fonction calculate, pour comprendre comment tu as accéléré le code.... (g ma petite idée ;-) )
Encore merci et a plus
Cyb-cd
P.S. Merci pour le virus ;-)
 
@

@+Thierry

Guest
Hé Hé Hé

Bonsoir Cyb-cd ...

Et oui je connais des astuces .... j'ai fait çà en 5 minutes mais, je me doutais que tu serais content :)

Pour la compréhension de ceux qui serait interressé par ce "boostage"...
Voici un extrait du mail qui accompagnait le fichier...

-----Message d'origine-----
De : Thierry Eygenraam [mailto:Eygenraam.thierry@laposte.net]
Envoyé : mercredi 8 janvier 2003 01:38
À : cyb-cd@netcourrier.com
Objet : RE: RE: Fichier Joint pour Thierry XLD par cyb-cd

=====================================================================
Bonjour Sebastien

Bon ci-joint ton fichier un peu "boosté".... :)
J'ai pas le temps de faire plus...

Mais c'est déjà pas mal.
Je mets XL en mode calculation manuelle c'est tout.
ceci dans ThisWorkbook Open / Close

Ensuite je demande à Excel de "Calculate" à la fin de chaque macro.
Je n'ai rien analysé, Si tu vois que le calcul n'est pas nécessaire à la fin de certaine macro, vire le calculate correspondant.
=====================================================================

Donc çà sert !! la preuve !! Un 486 en P12 vous voyez un peu !!

Arf j'ai mis le virus en ligne dans le Zip ci-joint..... Un virus tout ce qu'il y a de garantie.... Tout le monde l'attrape ..... enfin je le souhaite à tous et toutes tout au long de l'année 2003 !!!


Bonne Nuit
@+Thierry
 

Pièces jointes

  • 2003.zip
    14.8 KB · Affichages: 73
  • 2003.zip
    14.8 KB · Affichages: 57
  • 2003.zip
    14.8 KB · Affichages: 70

Statistiques des forums

Discussions
312 415
Messages
2 088 234
Membres
103 776
dernier inscrit
Floortin