Sub CSV_en_sequentiel() 'job75
Dim t, fichierSource$, fichierDestination$, x%, texte$, a$(), n&
t = Timer
fichierSource = ThisWorkbook.Path & "\FichierTXT.txt" 'à adapter
fichierDestination = ThisWorkbook.Path & "\FichierCSV.csv" 'à adapter
x = FreeFile
Open fichierSource For Input As #x 'accès en lecture séquentielle
Do While Not EOF(1) 'EndOfFile : fin du fichier
Line Input #x, texte 'récupère la ligne
ReDim Preserve a(n) 'tableau VBA, base 0
a(n) = Replace(texte, vbTab, ";") 'stocke le texte modifié dans le tableau a
n = n + 1
Loop
Close #x 'fermeture du fichier
Open fichierDestination For Output As #x 'accès en écriture séquentielle
Print #x, Join(a, vbLf) 'concaténation
Close #x 'fermeture du fichier
MsgBox "Durée " & Format(Timer - t, "0.00 \sec")
End Sub
Sub CSV_en_bloc() 'patricktoulon
Dim t, fichierSource$, fichierDestination$, x%, Lines$
t = Timer
fichierSource = ThisWorkbook.Path & "\FichierTXT.txt" 'à adapter
fichierDestination = ThisWorkbook.Path & "\FichierCSV.csv" 'à adapter
x = FreeFile
Open fichierSource For Input As #x: Lines = Input$(LOF(x), #x): Close #x
x = FreeFile
Open fichierDestination For Output As #x: Print #x, Replace(Lines, vbTab, ";"): Close #x
MsgBox "Durée " & Format(Timer - t, "0.00 \sec")
End Sub