OVH Cloud OVH Cloud

Pb Excel XP pour macro de sauvengarde en CSV

3 réponses
Avatar
cestmoi
Bonjour,

J'ai écris une macro qui fonctionne bien avec Excel 2000.
Je sauvegarde mon fichier Excel au format CSV, j'ai bien un fichier du type
: 1;2;3;4
Les champs sont séparés par des points virgules.

La même macro avec Excel XP me donne : 1,2,3,4
Les champs sont séparé par des virgules.
Que dois-je faire pour que ça fonctionne avec les deux versions. Y a t il un
moyen pour obliger Excel à utiliser le format point virgule.

J'ajoute que si je le fais à la main, c'est à dire que dans Excel XP, je
fais sauvegarder en format CSV - pointvirgule, ça marche mais pas avec ma
macro.

Ci dessous, ma macro

ChDir "F:\Gestexcel"
ActiveWorkbook.SaveAs Filename:="Classeur1.csv", FileFormat:= _
xlCSV, CreateBackup:=False

Merci d'avance.
Christophe

3 réponses

Avatar
Elfe Noir
bonjour


news://msnews.microsoft.com/0b6c01c397bd$104cd630$


"cestmoi" a écrit dans le message de
news:bpnk45$qr7$
Bonjour,

J'ai écris une macro qui fonctionne bien avec Excel 2000.
Je sauvegarde mon fichier Excel au format CSV, j'ai bien un fichier du type
: 1;2;3;4
Les champs sont séparés par des points virgules.

La même macro avec Excel XP me donne : 1,2,3,4
Les champs sont séparé par des virgules.
Que dois-je faire pour que ça fonctionne avec les deux versions. Y a t il un
moyen pour obliger Excel à utiliser le format point virgule.

J'ajoute que si je le fais à la main, c'est à dire que dans Excel XP, je
fais sauvegarder en format CSV - pointvirgule, ça marche mais pas avec ma
macro.

Ci dessous, ma macro

ChDir "F:Gestexcel"
ActiveWorkbook.SaveAs Filename:="Classeur1.csv", FileFormat:= _
xlCSV, CreateBackup:úlse

Merci d'avance.
Christophe
Avatar
Clément Marcotte
Bonjour,

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

"cestmoi" a écrit dans le message de
news:bpnk45$qr7$
Bonjour,

J'ai écris une macro qui fonctionne bien avec Excel 2000.
Je sauvegarde mon fichier Excel au format CSV, j'ai bien un fichier
du type

: 1;2;3;4
Les champs sont séparés par des points virgules.

La même macro avec Excel XP me donne : 1,2,3,4
Les champs sont séparé par des virgules.
Que dois-je faire pour que ça fonctionne avec les deux versions. Y a
t il un

moyen pour obliger Excel à utiliser le format point virgule.

J'ajoute que si je le fais à la main, c'est à dire que dans Excel
XP, je

fais sauvegarder en format CSV - pointvirgule, ça marche mais pas
avec ma

macro.

Ci dessous, ma macro

ChDir "F:Gestexcel"
ActiveWorkbook.SaveAs Filename:="Classeur1.csv", FileFormat:= _
xlCSV, CreateBackup:úlse

Merci d'avance.
Christophe




Avatar
Frédéric Sigonneau
Bonjour,

Avec Excel XP, utilise le dernier (et nouveau) paramètre de la méthode SaveAs :

ActiveWorkbook.SaveAs Filename:="Classeur1.csv", FileFormat:= _
xlCSV, CreateBackup:úlse, Local:=True

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour,

J'ai écris une macro qui fonctionne bien avec Excel 2000.
Je sauvegarde mon fichier Excel au format CSV, j'ai bien un fichier du type
: 1;2;3;4
Les champs sont séparés par des points virgules.

La même macro avec Excel XP me donne : 1,2,3,4
Les champs sont séparé par des virgules.
Que dois-je faire pour que ça fonctionne avec les deux versions. Y a t il un
moyen pour obliger Excel à utiliser le format point virgule.

J'ajoute que si je le fais à la main, c'est à dire que dans Excel XP, je
fais sauvegarder en format CSV - pointvirgule, ça marche mais pas avec ma
macro.

Ci dessous, ma macro

ChDir "F:Gestexcel"
ActiveWorkbook.SaveAs Filename:="Classeur1.csv", FileFormat:= _
xlCSV, CreateBackup:úlse

Merci d'avance.
Christophe