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 :
La variable contenant la ligne entière concaténée avant collage est définie comme "string".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ActiveWorkbook.SaveAs Filename:=FICHIER_EXP, _ 'FileFormat:=xlCSV, CreateBackup:=False
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
Partager