martyouel
Messages postés1Date d'inscriptionlundi 22 septembre 2003StatutMembreDernière intervention31 mai 2009
-
31 mai 2009 à 17:29
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 2010
-
31 mai 2009 à 19:59
Bonjour,
j'ai développé une méthode d'importation en lot de fichiers txt dans un fichier Excel.
Je dois générer un onglet par fichier txt importé.
Pour le moment, j'ouvre mon fichier txt et le Split par "," dans un Array, ensuite je boucle mon array et ajoute toutes les informations dans ma WorkSheet.
Ça marche bien, sauf c'est pas assez performant. Ça prend en moyenne 20 secondes par fichier...donc pour un traitement d'environ 150 fichiers à la fois c'est trop long.
Quand j'utilise directement l'importation à partir d'un fichier .txt de Excel 2007, c'est archi-rapide.
Puis-je utiliser cette même fonction en VBA? Si oui, comment? je crois que ça serait la manière la plus optimale.
J'ai remarqué que sous mon objet Workbooks j'ai une fonction OpenTextFile...cependant dans ma situation j'ai 1 workbook et plusieurs worksheet, comment puis-je importer 1 fichier par Worksheet?
Voici ma fonction actuelle d'importation, laquelle fonctionne mais comme je dis, c'est pas optimale :
Private Sub ProcessFileImportation(SourceFile As String, objExcel As Excel.Application)
Dim objFSO As Scripting.FileSystemObject
Set objFSO = New Scripting.FileSystemObject
cnt
Messages postés219Date d'inscriptionlundi 21 novembre 2005StatutMembreDernière intervention20 décembre 20101 31 mai 2009 à 19:59
Bonjour
Voir plutôt avec la méthode "Open" de WorkBooks
exemple
Workbooks.Open fichieraouvrir, 0, True, ","
Application.AskToUpdateLinks = False
ActiveSheet.Copy before:=Workbooks(1).Sheets(1)
ActiveWorkbook.ActiveSheet.Name = "Feuille" & i ' <== index de boucle
Workbooks(fich).Close False
fichieraouvrir=chemin complet du fichier à ouvrir ==> "C:\MondossierExcel\toto.txt"fich nom court du fichier avec l'extention> "toto.txt"