yonathanzerb
Messages postés10Date d'inscriptionjeudi 1 juillet 2004StatutMembreDernière intervention 8 août 2006
-
23 mai 2006 à 12:08
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 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...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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 !
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 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.