OVH Cloud OVH Cloud

Fichier text avec séparateur

4 réponses
Avatar
Arnaud
Je voudrais enregistrer un fichier excel au format texte=20
avec un point virgule pour s=E9parer chaque colonne.

Lorsque je clique sur "fichier/enregistrer sous" et que je=20
choisis le format csv (s=E9parateu: points-virgule), =E7a=20
marche.
Je voudrais faire la m=EAme op=E9ration par macro. Quand=20
j'enregistre au format .CSV, =E7a ne marche plus. En=20
anglais, CSV signifiant "Comma separated value".

Comment puis je automatiser mon enregistrement en gardant=20
les points virgules comme s=E9parateurs?

4 réponses

Avatar
Michel Gaboly
Bonjour,

Quelle version d'Excel as-tu ? Si c'est 2002, voici une
réponse de Frédéric Sigonneau faite hier après-midi :


Depuis la version 2002 d'Excel, SaveAs possède un para-
mètre supplémentaire (Local) qui permet d'utiliser au
choix les paramètres régionaux américains dans VBA
(valeur False, par défaut) ou ceux du système sur lequel
le code s'exécute (il faut dans ce cas affecter la valeur
True à Local).




Je voudrais enregistrer un fichier excel au format texte
avec un point virgule pour séparer chaque colonne.

Lorsque je clique sur "fichier/enregistrer sous" et que je
choisis le format csv (séparateu: points-virgule), ça
marche.
Je voudrais faire la même opération par macro. Quand
j'enregistre au format .CSV, ça ne marche plus. En
anglais, CSV signifiant "Comma separated value".

Comment puis je automatiser mon enregistrement en gardant
les points virgules comme séparateurs?


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Vincent.
Bonjour,
Sub zaza()
Set MyWkbk = Workbooks.Open(Filename:="C:Liste.XLS")
MyWkbk.SaveAs Filename:="Liste.csv", _
FileFormat:=xlCSV, CreateBackup:úlse
MyWkbk.Close
End Sub
a l'air de marcher correctement.
A+

V.

-----Message d'origine-----
Je voudrais enregistrer un fichier excel au format texte
avec un point virgule pour séparer chaque colonne.

Lorsque je clique sur "fichier/enregistrer sous" et que
je

choisis le format csv (séparateu: points-virgule), ça
marche.
Je voudrais faire la même opération par macro. Quand
j'enregistre au format .CSV, ça ne marche plus. En
anglais, CSV signifiant "Comma separated value".

Comment puis je automatiser mon enregistrement en gardant
les points virgules comme séparateurs?
.



Avatar
Vincent.
Bonjour,
Sub zaza()
Set MyWkbk = Workbooks.Open(Filename:="C:Liste.XLS")
MyWkbk.SaveAs Filename:="Liste.csv", _
FileFormat:=xlCSV, CreateBackup:úlse
MyWkbk.Close
End Sub
a l'air de marcher correctement.
A+

V.

-----Message d'origine-----
Je voudrais enregistrer un fichier excel au format texte
avec un point virgule pour séparer chaque colonne.

Lorsque je clique sur "fichier/enregistrer sous" et que
je

choisis le format csv (séparateu: points-virgule), ça
marche.
Je voudrais faire la même opération par macro. Quand
j'enregistre au format .CSV, ça ne marche plus. En
anglais, CSV signifiant "Comma separated value".

Comment puis je automatiser mon enregistrement en gardant
les points virgules comme séparateurs?
.



Avatar
Clément Marcotte
La procédure suivante utilise trois façons d'écrire un fichier texte
avec VB-VBA:


Sub ecrirelefichiertexteavecdesvirgules()
Open "unbeaufichiertexte.txt" For Output As 1
Dim i As Integer, derniereligne As Integer
Sheets("Feuil1").Select
derniereligne = [a65536].End(xlUp).Row
'Avec Write
For i = 1 To derniereligne
Write #1, Cells(i, 1).Value; Cells(i, 2).Value; _
Cells(i, 3).Value; Cells(i, 4).Value
Next
'Avec Print et virgules
'Le séparateur dans le fichier est entre guillemets
'le séparateur VBA n'est pas entre guillemets
For i = 1 To derniereligne
Print #1, Chr(34); Cells(i, 1).Value; Chr(34); _
","; Chr(34); Cells(i, 2).Value; Chr(34); _
","; Cells(i, 3).Value; ","; Chr(34); _
Cells(i, 4).Value; Chr(34)
Next
'Le séparateur dans le fichier est entre guillemets
'le séparateur VBA n'est pas entre guillemets
'sauf pour les points-virgules qui collent les
'nom et les guillemets
For i = 1 To derniereligne
Print #1, Chr(34); Cells(i, 1).Value; Chr(34), ",", _
Chr(34); Cells(i, 2).Value; Chr(34); , _
",", Cells(i, 3).Value, ",", Chr(34); _
Cells(i, 4).Value; Chr(34)
Next
Close
End Sub

"Arnaud" a écrit dans le message de
news:086d01c3b01a$2c593d30$
Je voudrais enregistrer un fichier excel au format texte
avec un point virgule pour séparer chaque colonne.

Lorsque je clique sur "fichier/enregistrer sous" et que je
choisis le format csv (séparateu: points-virgule), ça
marche.
Je voudrais faire la même opération par macro. Quand
j'enregistre au format .CSV, ça ne marche plus. En
anglais, CSV signifiant "Comma separated value".

Comment puis je automatiser mon enregistrement en gardant
les points virgules comme séparateurs?