Optimisation de macro - VB/VBA/VBS - Programmation
Marsh Posté le 20-05-2009 à 15:39:26
Si tu connais le Java tu peux faire un programme dans ce langage. Avec la bonne librairie il est facile de manipuler des fichiers Excel. Et niveau performance ça n'a vraiment rien à voir avec le VBA qui est affreusement lent.
J'ai déjà réalisé un programme comme cela pour vérifier des fichiers aussi gros que les tiens. Pour certains, avec Java le temps nécessaire était jusqu'à 20 fois inférieur qu'avec VBA (mais il faut dire que les macros n'étaient pas très optimisées non plus).
Marsh Posté le 21-05-2009 à 07:10:37
- Pour éviter le recalcul automatique de tes cellules, tu peux aller dans les options et décocher la case du calcul auto.
- Sinon, pour ton algo, je ne sais pas trop, j'aurais fait à peu près la même chose. Peut être que tu pourrais faire d'abord un tri sur tes colonnes iD pour éviter de devoir repartir systématiquement du haut de la liste dans ta deuxième table.
- Une dernière solution (que je n'ai jamais fait avec Excel, mais je pense que c'est possible), c'est faire une requête sql.
Marsh Posté le 20-05-2009 à 15:13:30
Bonjour tout le monde,
Voila ma problématique :
Dans Excel 2003, je dois vérifier que dans ma feuille Données brutes l'id se trouvant dans la colonne B ne se trouve pas dans la feuille Stock colonne A.
Je suis vers dans la solution "formule dans les cellules" avec = SI(ESTNA(RECHERCHEV(... ça fonctionnait très bien mais recalculait tout le temps les formules dès que je faisais une modif ou une sauvegarde.
Donc je me suis dit, je vais faire une macro qui va mettre le résultat en dur dans mes cellules. Il me suffira de lancer la macro quand j'en ai besoin.
Mais c'est terriblement long ! (4500 lignes traitées en 10min)
Le fichier xls doit bien faire dans les 15mo, avec 15 000 lignes dans la feuille Données brutes et 12 000 dans Stock.
Auriez vous une idée d'optimisation de ma macro ou une solution autre pour que cette mise a jour soit plus rapide ?
Merci d'avance
Flu
---------------
http://poemes.iceteapeche.com - http://www.simuland.net