Génération de fichier Excel à partir de fichier Texte

cs_gedeon44 Messages postés 6 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 7 juillet 2006 - 3 mai 2006 à 10:26
linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 - 3 mai 2006 à 11:11
Bonjour,


Je cherche à écrire un script VB (.vbs) afin de générer des fichiers excel à partir de fichiers texte stockés dans un répertoire.
Mon script s'exécute en précisant en argument les répertoires source (endroit où se trouve mes fichier .txt) et cible (endroit où il doit générer les fichier excel).
Mes fichiers texte comporte des données avec comme séparateur ";". La première ligne correspondant à l'entête des colonnes, séparées également par des ";".
Le code suivant génère bien des fichiers excel mais leurs contenus n'est pas correcte. Les colonnes et les données sont décalées. Les arguments de OpenText ne semble pas correcte visiblement. Je cherche à obtenir la syntaxe exacte de la commande OpenText, mais j'ai du mal...
Je cherche par ailleurs à automatiser l'ajustement automatique des colonnes, et le filtre automatique sur l'ensemble des colonnes.


Merci d'avance.
Bonne journée.

*************
Dim FSO
Dim waExcel


Set FSO = CreateObject("Scripting.FileSystemObject")
Set waExcel = CreateObject("Excel.Application") 'Ouverture d'Excel


Set sArg = WScript.Arguments


If sArg.Count <> 2 Then
    MsgBox "Veuillez respecter la syntaxe suivante : ConvTxtXls <RepertoireSource> <RepertoireCible>"
    WScript.Quit
End If


sRepSource = sArg(0)
sRepCible = sArg(1)


If not FSO.FolderExists(sRepSource) Then
 Wscript.Echo " Le repertoire source " & sRepSource & " n'existe pas !"
 WScript.Quit
End If


If not FSO.FolderExists(sRepCible) Then
 Wscript.Echo " Le repertoire cible " & sRepCible & " n'existe pas !"
 WScript.Quit
End If


Set MonRep = FSO.GetFolder(sRepSource)
Set ColFiles = MonRep.Files


For Each ItemFichier in ColFiles
 If FSO.FileExists(ItemFichier) Then 'Existance du fichier
  sExtension = Right(ItemFichier.path,4)
  
  If sExtension = ".txt" Then


   iPos = InStrRev(ItemFichier, "")


   sNomFichierTxt = Mid(ItemFichier, iPos+1)
   sNomFichierXls = Left(sNomFichierTxt, Len(sNomFichierTxt) - 4) & ".xls"


   waExcel.Visible = False 'Rendre invisible Excel


   'Importe le fichier texte vers une feuille Excel avec délimiteur ";"
   waExcel.Workbooks.OpenText ItemFichier, xlWindows, 1, True, , , True, , , True
   
   'Ajustement automatique des colonnes ???
   
   'Filtre automatique sur l'ensemble des colonnes ???
   
   'Sauvegarde la feuiller importer vers le chemin d'accès de départ
   waExcel.Workbooks(sNomFichierTxt).SaveAs sRepCible & "" & sNomFichierXls, , , , , , 2
   waExcel.Workbooks.Close
   
  End If


 End If
Next


Set ColFiles = nothing
Set MonRep = nothing
Set FSO = nothing


'Fermeture d'Excel
waExcel.Application.Quit
Set waExcel = nothing


Wscript.Echo "Fin de Traitement"
*************
Gedeon44

1 réponse

linasteph Messages postés 153 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 juillet 2009 1
3 mai 2006 à 11:11
Essaie d'importer ton fichier d'en excel (menu Données > Donneés
externes > Importer le fichier texte) en enregistrant tes actions
sous forme de macro et ensuite tu récupères le code qui va bien.


Je viens de le faire et excel utilise la fonction ActiveSheet.QueryTables.Add...


J'espère que cela pourra t'aider
0
Rejoignez-nous