philipina
Messages postés50Date d'inscriptionmardi 5 mars 2002StatutMembreDernière intervention 4 décembre 2013
-
29 sept. 2003 à 08:49
stabe
Messages postés144Date d'inscriptionlundi 23 décembre 2002StatutMembreDernière intervention17 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
CocoMsa
Messages postés29Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention17 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
philipina
Messages postés50Date d'inscriptionmardi 5 mars 2002StatutMembreDerniè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.
Vous n’avez pas trouvé la réponse que vous recherchez ?