cs_Liro
Messages postés159Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention30 septembre 2011
-
22 févr. 2009 à 12:08
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
1 mars 2009 à 23:27
Bonjour,
J'ai un fichier txt contenant du texte séparé par de nombreux espaces.
Je voudrais en faire un fichier compatible excel (avec des colonnes). Il me semble que transformer les espaces par des ; pour en faire un fichier csv serait le plus simple.
Qu'en pensez-vous? Existe-t-il d'autres solutions?
Comment traiter le fichier txt? Je sais comment remplacer les nombreux espaces par des ; avec la fonction Replace mais je ne sais pas comment ouvrir et traiter tout le fichier. Pouvez-vous m'aider SVP?
Merci
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 1 mars 2009 à 23:27
Bonsoir,
Résumé des fonctions proposées par PCPT (bonsoir).
Option Explicit
'Utilisation:
'arg1 : fichier en entrée (sFileText)
'arg2 : fichier en sortie (sFileExcel)
'arg3 : caractère à remplacer (sWordsToRemove)
'arg4 : replace arg3 par arg4 (sWordsToChange)
FnExcelImportTextFileTxt "D:\Test.txt", "D:\Test.csv", Space(1), ";"
Function FnExcelImportTextFileTxt(sFileText, sFileExcel, sWordsToRemove, sWordsToChange)
Dim oFso, oFile, aLineFicTxt, i
Set oFso = CreateObject("Scripting.FileSystemObject")
Set oFile = oFso.GetFile(sFileText)
' Controle existence fichier et fichier non vide
If oFso.FileExists(sFileText) And oFile.Size <> 0 Then
Set oFile = oFso.OpenTextFile(sFileText, 1)
' aLineFicTxt est un tableau contenant toutes les lignes du .txt
' chaque sWordsToRemove de chaque ligne est remplacé par sWordsToChange
aLineFicTxt = Split(Replace(oFile.ReadAll,sWordsToRemove , sWordsToChange),vbCrLf)
oFile.Close
On Error Resume Next
' Controle si fichier en sortie non ouvert pour écriture nouveau fichier
Set oFile = oFso.CreateTextFile(sFileExcel, True)
If Err.Number <> 0 Then
WScript.Echo "Fichier " & sFileExcel & " déjà ouvert" : Err.Clear
Else
For i = LBound(aLineFicTxt) To UBound(aLineFicTxt)
oFile.WriteLine aLineFicTxt(i)
Next
oFile.Close
End If
Else
WScript.Echo "Fichier " & sFileText & " inexistant ou vide"
End If
Set oFile = Nothing
Set oFso = Nothing
End Function