XL 2010 convertir fichier excel en texte

jad73

XLDnaute Occasionnel
Bonjour le forum
J'ai un fichier excel que je voudrais convertir en fichier texte séparer par point virgule.
Comment faut-il faire.
joint un bout du fichier.
Merci
 

Pièces jointes

  • Excel_Texte.xlsm
    9.5 KB · Affichages: 17
Bonjour jad73, le forum

Manuellement, faire comme suit :
ne garder que la feuille avec les données
insérer deux colonnes en BC
sélectionner la colonne A
faire données/convertir
choisir délimité puis séparateur /
mettre les colonnes ABC au format standard
enregistrer au format CSV (séparateur point virgule)

le csv est un fichier texte formaté, vous pouvez le renommer directement en txt.
vous pouvez utiliser l'enregistreur de macro si c'est une tache répétitive.

Bien cordialement, @+
 

job75

XLDnaute Barbatruc
Bonsoir jad73, Yeahou,

Oui il vaut mieux utiliser une macro :
VB:
Sub CSV()
Dim chemin$, fichier$, ncol%, tablo, a(), i&, dat, j%
chemin = ThisWorkbook.Path 'dossier à adapter
fichier = "\Fichier CSV.csv" 'nom à adapter
With Feuil2.[A1].CurrentRegion 'matrice, plus rapide
    ncol = .Columns.Count
    If ncol = 1 Then ncol = 2
    tablo = .Resize(, ncol)
End With
ReDim a(1 To UBound(tablo), 1 To ncol + 2)
For i = 1 To UBound(tablo)
    dat = tablo(i, 1)
    If IsDate(dat) Then
        a(i, 1) = Day(dat)
        a(i, 2) = Month(dat)
        a(i, 3) = Year(dat)
    End If
    For j = 4 To ncol + 2
        a(i, j) = tablo(i, j - 2)
Next j, i
'---création du fichier CSV---
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier CSV a déjà été créé
With Workbooks.Add(xlWBATWorksheet) 'nouveau document
    .Sheets(1).[A1].Resize(UBound(a), ncol + 2) = a
    .SaveAs chemin & fichier, xlCSV, Local:=True 'enregistrement
    .Close 'fermeture
End With
MsgBox "Le fichier CSV a été créé..."
End Sub
Ouvrir le fichier CSV avec le bloc-notes si l'on veut voir les points-virgules.

A+
 

Pièces jointes

  • Excel_Texte(1).xlsm
    20.3 KB · Affichages: 9

job75

XLDnaute Barbatruc
Bonjour jad73, Yeahou, le forum,

Une solution nettement meilleure avec ce fichier (2) :
VB:
Sub CSV()
Dim chemin$, fichier$, ncol%, tablo, a(), i&, dat, j%
chemin = ThisWorkbook.Path 'dossier à adapter
fichier = "\Fichier CSV.csv" 'nom à adapter
With Feuil2.[A1].CurrentRegion 'matrice, plus rapide
    ncol = .Columns.Count
    tablo = .Resize(.Rows.Count + 1, ncol) 'matrice, plus rapide, au moins 2 éléments
End With
ReDim a(1 To UBound(tablo) - 1)
For i = 1 To UBound(tablo) - 1
    dat = tablo(i, 1)
    If IsDate(dat) Then a(i) = Format(dat, "d\;m\;yyyy") Else a(i) = dat & ";;"
    For j = 2 To ncol
        a(i) = a(i) & ";" & tablo(i, j)
Next j, i
'---création du fichier CSV---
j = FreeFile
Open chemin & fichier For Output As #j
Print #j, Join(a, vbLf)
Close #j 'fermeture
MsgBox "Le fichier CSV a été créé..."
End Sub
A+
 

Pièces jointes

  • Excel_Texte(2).xlsm
    19.5 KB · Affichages: 5
Dernière édition: