Problème de guillemets dans un .csv
Bonjour,
Dans un fichier Excel contenant bon nombre de données, j'ai créé une macro qui a pour but de générer un fichier .csv au bon format pour un import ultérieur dans une base de données.
La macro concatène les champs en intercalant des ";" et les pose dans la colonne A d'un onglet qu'elle créé.
A part la première ligne contenant les entêtes, toutes les lignes sont du type
VAR1 & ";" & VAR2 & ";" ... ";" & VALEUR
ou VARx sont des chaines de caractère et Valeur un "string" contenant un nombre entier ou décimal.
exemple
couleur;objet;valeur
bleu;voiture;3,1
rouge;maison;4
jaune;arbre;2,6
Une fois toutes les lignes traitées, la macro copie l'onglet dans un nouveau fichier "import" puis enregistre celui-ci en .csv.
Mon problème survient lors de l'enregistrement de ce fichier "import".
J'ai pu vérifier via le débogage que lors de sa création la syntaxe des lignes est ok. Mais si l'on cherche à l'ouvrir ou à l'importer des guillemets font leur apparition au début et à la fin de chaque ligne contenant une valeur décimale.
suite de l'exemple
couleur;objet;valeur
"bleu;voiture;3,1"
rouge;maison;4
"jaune;arbre;2,6"
Les lignes 1 et 3 sont ok, les 2 et 4 sont rejetées lors de l'import.
J'enregistre le fichier comme cela :
Code:
1 2
| ActiveWorkbook.SaveAs Filename:=FICHIER_EXP, _
'FileFormat:=xlCSV, CreateBackup:=False |
La variable contenant la ligne entière concaténée avant collage est définie comme "string".
J'ai essayé en générant un .txt / séparateur tab mais le résultat est pire car les guillemets sont sur toutes les lignes.
A votre disposition pour un complément de description
merci d'avance,
kilikli
Enregistrer un csv sans guillemets
Citation:
Envoyé par
OokieDookie91
Bonjour Kilikli,
J'ai eu exactement le même souci, je l'ai résolu en utilisant la syntaxe suivante :
DirTxt et FichierTxt sont deux variables String hébergeant respectivement le chemin et le nom du fichier texte (extension .txt comprise).
Code:
1 2 3 4
| ChDir DirTxt
ActiveWorkbook.SaveAs Filename:= _
FichierTxt, _
FileFormat:=xlTextPrinter, CreateBackup:=False |
HTH,
Bonjour OokieDookie91, j'ai exactement les même problème je sais que votre code c'est la solution à mon problème mais je suis débutant je n'arrive pas à l'adapter. Pour mon cas, j'ai copié une feuille de mon activeworbook dans un autre fichier excel format csv, et je souhaite enregistrer ce deuxième fichier sans avoir les guillemets en plus lors de l'enregistrement
Code:
1 2 3 4
| ChDir DirTxt
Fichier_input.SaveAs Filename:="C:\Users\223023963\Downloads\FlasquessupAndy\Link_Ansys_Excel\ansys_dxromreader\input1"
FichierTxt, (et là je n'ai pas compris ce qu'il faut mettre)
FileFormat:=xlCSV, CreateBackup:=False |
Voilà, le "fichier_input" c'est mon fichier csv dans quoi j'ai copié une feuille de mon activebook et que je souhaite enregistrer au format csv sans les guillemets en trop. Je vous remercie par avance pour votre aide.