Exportation en .XLS trop lente!

philipina Messages postés 50 Date d'inscription mardi 5 mars 2002 Statut Membre Dernière intervention 4 décembre 2013 - 29 sept. 2003 à 08:49
stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006 - 30 sept. 2003 à 16:03
Bonjour,

Je veux exporter un tableau pour créer un fichier .xls. J'ai regardé le forum et les sources pour trouver le code.
Cela fonctionne correctement mais le problème et la vitesse. Pour faire un fichier .xls avec une table de 2000 valeurs il faut 1 minute!!! Alors que cela devrait se faire en maximum 1 ou 2 secondes.
Voici mon code,
Un grand merci à celui qui pourra me dire ce que je peux changer pour être plus rapide.

......
.....
Ex.Workbooks.Add
For i = 1 To 2000
dQuantity = i * 2 * 4 / 6# / 20
Ex.Workbooks(1).Worksheets(1).Cells(i, 1) = Format(CStr(dQuantity), "#0.0")
Ex.Workbooks(1).Worksheets(1).Cells(i, 2) = Format(CStr(dTemp(i)), "#0")
DoEvents
Next i

Ex.Workbooks(1).SaveAs szExcelFilename
Ex.Workbooks(1).Close
Ex.Quit
.....
.....

Merci

5 réponses

cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
29 sept. 2003 à 09:56
Excuse moi mais ça veut dire quoi 6# ? Dans ton exemple je ne vois pas bien l'utilité d'une macro.
0
CocoMsa Messages postés 29 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 17 octobre 2007
30 sept. 2003 à 10:43
Moi, je n'utilise pas cette méthode.
Je crée un fichier texte dont les champs sont séparés par des tabulations ; il suffit ensuite d'ouvrir ce fichier dans Excel et le tour est joué.
Si ça peut t'aider ....

Exemple :

open fichier for output as 1
for i = 1 to 2000
Print #1, zone1 & vbTab & zone2 & vbTab & ... & zone90
next i
close
0
stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006
30 sept. 2003 à 15:09
Waouhh, merci CocoMsa !

J'avais le même problème, j'ai appliqué ta méthode et le gain de temps est incroyable !

:-)

-- stabe --
0
philipina Messages postés 50 Date d'inscription mardi 5 mars 2002 Statut Membre Dernière intervention 4 décembre 2013
30 sept. 2003 à 15:27
Cette méthode ne fonctionne pas dans mon cas, car avec cette méthode, si l'on créé un fichier avec des chiffres avec point (settings US) et que l'on ouvre le fichier sur un autre PC avec settings virgule (german) cela ne fonctionne pas. C'est pourquoi j'avais abolument besoin du format 100% excel.
Mais bon, j'ai touver la solution. Il faut mettre toutes les valeurs dans un tableau et ensuite lorsque l'on à rempli le tableau il suffit de le copier dans l'objet excel. Comme cela on passe de 1 minute à 5 secondes.

Merci pour vos réponses.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stabe Messages postés 144 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 17 juin 2006
30 sept. 2003 à 16:03
Intéressant également Philipina, peux-tu donner un extrait du code permettant de copier ton tableau vers la feuille excel.

-- stabe --
0
Rejoignez-nous