Macro ralentie

yonathanzerb Messages postés 10 Date d'inscription jeudi 1 juillet 2004 Statut Membre Dernière intervention 8 août 2006 - 23 mai 2006 à 12:08
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 23 mai 2006 à 21:09
bonjour a tous,
j'ai un problème un peu bizarre. j'ai une macro qui apparement ralentie dans son execution.
En fait, ma macro fais un classement des données dans un tableau. Lors de son départ, le classement des premières valeurs prend environs 15 - 20 ms/ligne (insertion de timer) mais vers la fin (1500eme ligne) je me retrouve a pres de 300ms/ligne.

J'ai pensé au copier collé, au presse papier qui prend de la memoire, au raffraichissement de l'image mais rien n'y fais, j'ai toujours un temps d'execution qui augmente.

Vous avez une idée?
Merci d'avance de vos réponses...

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
23 mai 2006 à 14:15
Cela peut venir (selon l'algorithme utilisé) au nombre de comparaison que ton prog doit faire : au départ, ca va vite s'il suffit de comparer à 5-10 lignes avant de positionner l'élément à la bonne place (par un tri par insertion par exemple), alors qu'à la fin, il faut qu'il teste 500-600 lignes.
De même, au départ, tu as peux de swap à faire (tri à bulle) alors qu'à la fin, ton éléments doit monter toutes les lignes déjà triées !

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0
valtrase Messages postés 937 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 9 mai 2022 3
23 mai 2006 à 19:22
Salut,
Tu utilises quoi comme tri ?

Cordialement, Jean-Paul  
______________________________________________________________________

Le Savoir n'a de valeur que s'il est partagé
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 mai 2006 à 21:09
Salut,

As tu Option Explicit dans tes déclarations ?
En gros as tu bien déclaré TOUTES tes variables ?

ex : Dim Nb As Long
Sache que Dim Nb est l'équivalent de Dim Nb As Variant, bref, ça bouffe un maximum de la mémoire, ce qui fait également perdre du temps dans l'exécution d'une procédure.

++
Mortalino
0
Rejoignez-nous