|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 2 ![]() |
Bonjour,
Je voudrais importer les données d'une série de fichier html se trouvant sur mon disque dur dans un tableau Excel sur le principe une ligne par fichier et une (à deux) cases par ligne de texte dans le fichier. Les fichiers html sont petits (env 10-12ko) mais très nombreux (>100000...) ! J'ai numéroté les fichiers pour une lecture séquentielle. J'ai fait un enregistrement de macro puis arrangé le résultat pour arriver à la faire tourner mais c'est très lent. La macro ouvre un nouveau classeur pour chaque fichier html et copie-colle dans Excel le contenu (sauf la fin) Excel met environ 10 minutes pour lire les 1000 fichiers html, puis met encore 10 minutes avant d'être disponible (roue arc-en-ciel qui tourne et tourne...). Voici mon code : Code :
Merci d'avance pour votre aide, Cordialement, |
||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
Il faut que tu essaies de bien comprendre (aide en ligne, net...) ce que fait chaque ligne donnée par ton enregistreur de macro. Comme ça tu pourras virer tout ce qui est inutile.
Je vais regarder ton code plus en détail. Effectivement, je comprends que ce soit très lent. On peut bien sûr améliorer la chose en évitant les multiples Select et Activate mais ce qui prend le plus de temps est l'ouverture et la fermeture des classeurs. il y a d'autre solution pour lire des fichiers HTML. Peux-tu expliquer comment sont organisés ces fichiers ? Ensuite, j'ai l'impression que tu veux recopier toutes les données du fichier sur une ligne c'est ça ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2011 Messages : 2 ![]() |
Bonjour Sébastien,
Je me disais bien que c'est cette ouverture de classeur qui devait être la plus pénalisante. Les fichiers html sont enregistrés sous la forme xxxnumfichier.htm dans un dossier dédié. Le contenu est du texte dans un tableau (de deux colonnes) d'une 60aines de lignes n'étant pas toutes remplies. Je souhaite en extraire une partie (le début et la fin ne m'intéresse pas). Je veux recopier toutes les données (m'intéressant) sur une ligne mais dans des colonnes différentes (pour chaque "case" du fichier html avec du contenu) et cela pour chaque fichier (un fichier - une ligne). S'il est plus rapide de copier le tout par une méthode plus directe, cela me va très bien, la supression du superflu étant aisée (tout le superflu est identique). Merci pour ton aide.
|
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Sebastien LIngénieur Financier Inscription : mars 2010 Messages : 880 ![]() |
La solution serait de parser le HTML, mais il faudrait que tu donnes un exemple de formatage pour pouvoir te donner une piste.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com