masena
Messages postés18Date d'inscriptionmercredi 1 avril 2009StatutMembreDernière intervention23 décembre 2010
-
5 nov. 2010 à 14:08
soleusterm
Messages postés3Date d'inscriptionmercredi 15 juillet 2009StatutMembreDernière intervention 8 novembre 2010
-
8 nov. 2010 à 10:38
Bonjour,
j'ai réaliser un programme sous Visual basic 2008 express utilisant excel. A la base ce logiciel fonctionnait avec Excel 2003, il permet de copier certaines données dans le fichier excel. Pour ce faire, j'utilise une boucle For qui me remplit chaque cellule. J'ai au total 2000 lignes et 9 colonnes à remplir.
Sous Excel 2003 cette opération était relativement rapide (moins d'une minute). Lors de mon passage sur Excel 2010 cette opération prend un temps monstrueux (environ 10 minutes).
Quelqu'un a t-il déjà rencontré ce problème ? Dois je reprendre la façon d'écrire mon code ? Y a t-il un réglage spécifique dans excel 2010 ?
soleusterm
Messages postés3Date d'inscriptionmercredi 15 juillet 2009StatutMembreDernière intervention 8 novembre 2010 6 nov. 2010 à 17:42
Il est possible que ton code exaime toutes les lignes ... d'ou la lenteur due au nombre de lignes d'excel plus important.
Révises ton code. Dans un cas similaire, j'ai procédé ainsi:
J'ai listé la dernier ligne et à partir de celle ci je suis remonté.
Ma macro s'éxécute en moins de 25 secondes alors qu'avant elle mettait 5mn pour environ 2500 entrées.
soleusterm
Messages postés3Date d'inscriptionmercredi 15 juillet 2009StatutMembreDernière intervention 8 novembre 2010 8 nov. 2010 à 09:06
En premier liue, tu vas devoir introduite une commande range du genre:
Range("A1").End(xlDown).Offset(1, 0).Select
Celle ci va te permettre d'identifier la première cellule vide en bas de ta liste.
Ensuite tu vas réécrire tes codes mais en partant de cette ligne et en remontant jusqu'au haut de page.
Il existe surement d'autres méthodes (que je ne connais pas,mais je suis aussi preneur) mais je pense que celle-ci suffit à accélérer l'éxécution de ta macro.
En revanche je me pose une question.
As tu programmé Excel pour qu'il utilise lors de ses calculs tous les processeurs de ton Pc?
Ceci peut aussi améliorer le temps de réponse de facon non négligeable.
DAns le cas contraire, vas dans Fichier / Options / Options avancées/ descends jusqu'a formules et coche:
Permet ds calculs multithread
ensuite coche la case: Utiliser tous les processeurs de cet ordinateur.
Soleusterm.
soleusterm
Messages postés3Date d'inscriptionmercredi 15 juillet 2009StatutMembreDernière intervention 8 novembre 2010 8 nov. 2010 à 10:38
Oups! je croyais que les lignes de codes étaint toutes présentes dans ton message.
Mais oui, bravo, sur le coup bravo à Nhenry.
Cette solution est super.