Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non ";"

smo

XLDnaute Nouveau
Bonjour à tous,

C'est mon 1er post sur ce forum et j'espère ne pas vous rabâcher les oreilles avec ce sempiternel problème.

Je souhaite que ma macro copie la feuil1 d'un classeur dans un second, l'enregistre en CSV avec comme séparateur le ";" et le referme.
Je souhaite de plus que le nouveau classeur s'affiche à l'identique de la feuille source (présentation en ligne et colonne).

Voici mon code, excusez son archaïsme (j'utilise bcp trop l'enregistreur de macro...) :

Sheets("feuil1").Select
Cells.Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:=SAVEconfig, FileFormat:=xlCSV, _
CreateBackup:=False
ActiveWorkbook.save
ActiveWorkbook.Close

Le résultat c'est ça :
En l'ouvrant avec le bloc-note c'est identique.
Or je veux ça :

Après consultation l'aide Excel 2007 (idem 2010), il semblerait que le séparateur avec FileFormat:=xlCSV soit bien la ",".
Or j'ai absolument besoin du séparateur ";" et "accessoirement" de l'affichage à l'identique de la feuil1.

Il y aurait-il un paramètre supplémentaire à renseigner dans la commande "SaveAs" pour changer la "," en ";" ?

De plus j'ai remarqué en tâtonnant la chose suivante :
Si je supprime la commande "ActiveWorkbook.Close" dans mon code, le nouveau classeur resté ouvert présente la même mise en forme que la feuil1.
Lorsque je le ferme, apparaît la classique boîte de dialogue de sauvegarde puis une autre concernant la conservation de la mise en forme du fichier et l'utilisation comme séparateur du point-virgule (de mémoire...)

Je réponds oui à chaque fois et j'obtiens un fichier CSV, reproduisant fidèlement l'affichage de la feuil1, avec comme séparateur le ";" (vérifié en l'ouvrant avec le bloc-note).
Sauf que je veux que cela soit la macro qui referme le fichier... et je ne peux que constater mon impuissance...

Any ideas Fellows?

PS : toute démonstration de simplification de ce piètre code sera notée avec intérêt...
 

Pièces jointes

  • Résultats avec fermeture auto.jpg
    Résultats avec fermeture auto.jpg
    53 KB · Affichages: 60
  • Résultats après fermeture manuel.jpg
    Résultats après fermeture manuel.jpg
    49.2 KB · Affichages: 75

Staple1600

XLDnaute Barbatruc
Re : Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non

Bonsoir

smo [Bienvenue sur le forum]
Il suffit d'ajouter en fin de code : Local:=True
Comme ici
Code:
Sub Macro1()
ActiveWorkbook.SaveAs Filename:="C:\Temp\test.csv", FileFormat:= _
        xlCSV, CreateBackup:=False, Local:=True
End Sub
Je viens de faire le test sur mon PC. C'est OK.
 

Staple1600

XLDnaute Barbatruc
Re : Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non

[...SUITE...]

PS : toute démonstration de simplification de ce piètre code sera notée avec intérêt...

Ta macro peut se réduire à celle-ci.
(test OK sur mon PC)
Code:
Sub XLS2CSV()
Dim NomFic As String
NomFic = ThisWorkbook.Path & "\" & "SAVEconfig.csv"
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:=NomFic, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
ActiveWorkbook.Close False
End Sub
 

smo

XLDnaute Nouveau
Re : Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non

Bonsoir,

Merci pour cette réponse mais après un rapide test ce paramétrage du SaveAs n'a pas eu l'air de fonctionner, le fichier CSV se présentait toujours comme la PJ de mon 1er post...
N'y a-t-il pas une histoire de paramètre régionaux ou d'option à configurer dans excel?

Cordialement.
 

Staple1600

XLDnaute Barbatruc
Re : Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non

Bonsoir à tous

smo
Comme je disais précédemment
Ta macro peut se réduire à celle-ci.
(test OK sur mon PC)
Je précise donc: test OK avec Excel 2013 (sur PC)
Cliques sur l'image pour t'en convaincre ;)
01ATestCSV.jpg
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non

Bonjour,

Contrôle dans le panneau de config 'région et langue / Formats / Paramètres supplémentaires...' la valeur de ton séparateur de liste.
Tu peux le contrôler/modifier avec Application.International(xlListSeparator)

eric
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non

Bonjour Staple,

Je n'ai pas lu ça. Que l'on pourrait comprendre : ne fonctionne pas sur un poste avec excel 2003.
C'est pour répondre à cette question :
N'y a-t-il pas une histoire de paramètre régionaux ou d'option à configurer dans excel?
xlListSeparator est bien utilisé comme séparateur dans les csv.

eric

edit : après un bon café je viens de comprendre que c'est toi qui posait la question :)
Si si, elle fonctionne très bien sur 2003.
 
Dernière édition:

smo

XLDnaute Nouveau
Re : Macro conversion CSV : "SaveAs & FileFormat:=xlCSV" donne séparateur "," et non

Cela fonctionne très très bien je remercie chaleureusement Staple et lui présente toutes mes confises...
J'avais dû mal adapté son code à ma macro c'est tout... (mon test ainsi que mes conclusions ont été trop rapides...)

En vous souhaitant de bonnes fêtes de fin d'années!

SMO
 

Discussions similaires

Statistiques des forums

Discussions
314 491
Messages
2 110 180
Membres
110 690
dernier inscrit
Zeppelin