Convertir un fichier .txt en .csv [RESOLU]

Macduff62a

XLDnaute Nouveau
Bonjour.
J'aimerai exécuter une macro qui convertirait les fichiers .txt en .csv.
Les séparateurs txt sont des espaces et les séparateurs sur csv seraient remplacés par des virgules.
Je dois convertir plusieurs fichiers et cela me serait vraiment fort utile.

Merci à toutes et à tous pour votre aide.

Cordialement

Jean-Claude

PJ : fichier txt en pièce jointe
 

Pièces jointes

  • 62014lg1.xlsx
    21 KB · Affichages: 88
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Convertir un fichier .txt en .csv

Re ,

Et bien voici, avec une petite interface programmable :

ATTENTION, modifier le chemin de test par un chemin existant
 

Pièces jointes

  • Trans_Txt_Csv.xlsm
    16.1 KB · Affichages: 112
  • Trans_Txt_Csv.xlsm
    16.1 KB · Affichages: 63
  • Trans_Txt_Csv.xlsm
    16.1 KB · Affichages: 64

Macduff62a

XLDnaute Nouveau
Re : Convertir un fichier .txt en .csv

Re-bonsoir

Encore merci pour votre dévouement.
J'y croyais, mais malheureusement la modification se traduit en colonne.
Voici ce qui m’intéresserait :

Sur le fichier txt :
1 6 2014 0 0 08.6 78 05.0 1011.0 0.0 0.0 315 0.0 0.0 51.2 350.9 8.6

Sur le fichier csv
1,6,2014,0,0,08.6,78,05.0,1011.0,0.0,0.0,315,0.0,0.0,51.2,350.9,8.6

J'ai des tas de fichiers de données météo à transformer vous ne pouvez imaginer le bonheur si la conversion fonctionnait.

Dans l'espoir !

Cordialement
 

camarchepas

XLDnaute Barbatruc
Re : Convertir un fichier .txt en .csv

Re moi,

@ hello Eriic , oui , mais demande des manips

Et voici , un problème de multi espaces , enfin résolu
 

Pièces jointes

  • Trans_Txt_Csv.xlsm
    15.9 KB · Affichages: 73
  • Trans_Txt_Csv.xlsm
    15.9 KB · Affichages: 66
  • Trans_Txt_Csv.xlsm
    15.9 KB · Affichages: 84

Macduff62a

XLDnaute Nouveau
Re : Convertir un fichier .txt en .csv

Re-camarchepas

Je vois que vous vous démenez pour moi et je vous en remercie.
Malheureusement ça ne fonctionne pas comme je le voudrai.
Certes il y a une grande amélioration, les multi espaces sont comblés mais ça reste en colonnes et non séparés par des virgules.
Je vous joins une copie écran pour que vous le constatiez.
Merci de votre dévouement.
Cordialement
Jean-Claude
 

Pièces jointes

  • Copie écran.jpg
    Copie écran.jpg
    66.1 KB · Affichages: 127
  • Copie écran.jpg
    Copie écran.jpg
    66.1 KB · Affichages: 119
  • Copie écran.jpg
    Copie écran.jpg
    66.1 KB · Affichages: 113

camarchepas

XLDnaute Barbatruc
Re : Convertir un fichier .txt en .csv

Eh oui ,

Mais ça , c'est normal,

Le séparateur Excel est la tabulation pas la virgule , si tu regardes le fichier avec un éditeur de texte , les virgules y sont bien .

Aprés , il faut connaitre exactement ton besoin .

Cordialement
 

Macduff62a

XLDnaute Nouveau
Re : Convertir un fichier .txt en .csv

Je ne saurai comment vous remercier.
Je viens d'essayer de mettre le fichier et le miracle s'est produit.
Je vais pouvoir mettre à jour ma base de données de mon logiciel de météo.
1000 mercis pour votre aide.
Cordialement
Jean-Claude
 

eriiic

XLDnaute Barbatruc
Re : Convertir un fichier .txt en .csv [RESOLU]

@ hello Eriic , oui , mais demande des manips
N'exagérons rien :)
Juste Ctrl+H, Remplacer: " ", par: "," et désigner le répertoire à traiter.
Ah oui, et cliquer sur 'Remplacer tout'.
Rien de plus pour faire tous les fichiers. Moins de manips que de faire une macro ;-)

eric
 

Modeste geedee

XLDnaute Barbatruc
Re : Convertir un fichier .txt en .csv

Bonsour®
une petite macro qui fait tout, toute seule, il suffit chercher et choisir dans l'arborescence ...:rolleyes:

seul petit bémol la ligne d'entete est légèrement bousculée :(

VB:
Sub Macro1()
Dim FileToOpen As Variant
FileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If FileToOpen <> False Then
    MsgBox "Open " & FileToOpen
    Workbooks.OpenText Filename:=FileToOpen _
        , Origin:=xlMSDOS _
        , StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 4), Array( _
        10, 1), Array(13, 1), Array(16, 1), Array(21, 1), Array(25, 1), Array(30, 1), Array(37, 1), _
        Array(41, 1), Array(45, 1), Array(49, 1), Array(53, 1), Array(57, 1), Array(62, 1), Array( _
        68, 1)), DecimalSeparator:=".", TrailingMinusNumbers:=True

' ici il sera possible de rajouter/corriger la ligne d'entete
        
 ' sauvegarde au format CSV dans le même repertoire que l'original .txt
        ActiveWorkbook.SaveAs Filename:= _
        ActiveSheet.Name & ".csv", FileFormat:= _
        xlCSV, CreateBackup:=False
    ActiveWorkbook.Save
    ActiveWindow.Close
        
        
End If
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 137
Membres
103 129
dernier inscrit
Atruc81500