Problème séparateurs lors de la conversion d'un fichier csv en excel - VB/VBA/VBS - Programmation
Marsh Posté le 03-02-2009 à 12:40:59
Ben si tu as parfois une virgule qui est une virgule, et parfois une virgule qui est un séparateur, il ne peut pas être devin non plus...
Le seule solution, c'est que dans tes données sources, que les données où peuvent potentiellement se trouver des virgules (ou autres séparateurs), lui dire de les encadrer (les données complètes, pas juste la virgule hein) avec de guillemets.
Marsh Posté le 03-02-2009 à 15:38:28
Merci Ptit loup t'es tjrs présent pour répondre à mes interogations et je t'en remercie bcp, au fait j'ai fait ce que t'as dit en mettant le contenu des champs entre " mais après qd je fais Outils-->Macro-->nouvelle macro histoire de récupérer le code le format n'est celui souhaité, en effet j'ai pas les données souf forme de colonnes mais c'est pris par excel comme un seul texte.
Est ce que j'ai mal compri ce que tu m'as dit de faire, j'en ai un peu l'impression donc si tu peux stp m'expliquer ce serait trop sympat.
Marsh Posté le 03-02-2009 à 15:54:33
Au fait c'est bizarre car quand j'importe les données dans le fichier excel j'ai l'impression qu'il prend pas en compte qu'une virgule est un séparateur pourtant je mentionne bien que c'est un séparateur.
Marsh Posté le 03-02-2009 à 16:06:56
si tu as les données suivantes au départ
Dupont Marcel 2, rue truc muche PARIS
Martin Jean 4, rue des alouettes RENNES
Au moment où est exporté le CSV, il faut que tu aies qq chose qui ressemble à ça :
Dupont,Marcel,"2, rue truc muche",PARIS
Martin,Jean,"4, rue des alouettes",RENNES
Et ensuite, quand tu importes ce CSV, alors, tu indiques, sur ta 3ème colonne que les données sont encapsulées avec des guillemets.
Ton import ensuite, tu le fais via une macro... mais je suppose que tu as enregistré cette macro en lui disant le format de chaque colonne... Donc faut bien indiquer pour la 3ème colonne ce que je te disais.
Marsh Posté le 03-02-2009 à 16:41:59
Au fait j'ai carrément mis tous les champs entre guillemets :
"Dupont","Marcel","2, rue truc muche","PARIS"
"Martin","Jean","4, rue des alouettes","RENNES "
Et après j'ouvre un nouveau classeur excel dans lequel j'importe ce fichier csv : Données --> Données externes --> importer données et après avoir choisi mon fichier csv la fenêtre de "l'assistant importation de texte " s'ouvre, je coche Délimité puis comme séparateurs je choisi Virgule et comme identificateur de texte ". Mais ça marche pas, pas de colonnes, c'est comme si il prend pas ce que je lui ai dit en considération à savoir virgule est un séparateur.
Marsh Posté le 03-02-2009 à 17:27:53
Toujours rien ça change pas, je comprend pas pk il prend pas en compte ce que j'ai marqué.
Marsh Posté le 03-02-2009 à 17:56:08
Malheureusement non c'est des données " confidentielles" enfin c'est ce que m'a fait comprendre un ami mais je peux mettre ici un exemple qui donne une impression sur le format :
Submit date,"Submit Time","Type","Statut","Type produit
01/08/2009,19:55,"trade","confirmé","CDS"
Encore une fois merci Ptit loup
Marsh Posté le 04-02-2009 à 10:14:54
C'est sur 2 lignes ?? tu as pas de " après "type produit"...
pourquoi tu mets des "" partout, et pas uniquement là où tu en as besoin.
Marsh Posté le 04-02-2009 à 12:01:10
Au fait j'ai plusieurs lignes ( des centaines ) et plusieurs champs mais moi je t'ai mi juste un exemple pour te montrer la forme de mon csv, pour le dernier champ ( ici "type produit" oui y a pas de " ) sinon c'est pas moi qui a mi les ", c'est comme ça que ça existe dans mon fichier csv.
D'un autre côté quand je veux enregistrer mon csv excel me dit que mon fichier put contenir des informaions non compatibles avec csv et me demande si je veux garder le format du classeur. Si je repond oui, il me dit que les fonctionnalités non compatibles seront perdus, je me demande si le problème ne vient de la.
Merci Ptit loup mais ça me saoule et ça me bloque dans mon travail.
Marsh Posté le 04-02-2009 à 12:16:33
C'est donc bien toi qui enregistres le CSV... non ?
Quand tu enregistres, tu fais enregistrer sous, et format CSV ? ou tu fais comment ?...
Le msg d'avertissement, c'est juste pour te rappeler que le CSV c'est pas de l'Excel, et que "forcément", la mise en forme, les différentes pages de ton classeur etc... ben tu peux pas l'enregistrer en CSV...
De toute façon, c'est plus un "export" en CSV que tu fais conceptuellement
(d'ailleurs Excel a jamais repris cette notion d'export de données, c'est un peu dommage)
Marsh Posté le 04-02-2009 à 12:27:29
Au fait le csv est dans un espace partagé donc je l'ouvre avec excel puis quand j'enregistre il me dit ce que j'ai dit auparavant, tu penses que c'est pour ça que l'importation ne marche pas ou ça n'a rien avoir?
Marsh Posté le 04-02-2009 à 12:29:07
pour skaraa, y a pas de macro c'est juste "manuellement", j'essaie d'importer sur excel ce csv mais il prend pas en compte ce que je lui dis à savoir , comme séparteur et " comme identificateur de texte.
Marsh Posté le 04-02-2009 à 12:41:43
SI tu fais un import (données externes) ta seule solution est de faire la différence entre la virgule et la virgule de separation.
En gros remplacer celle de separation par le caractere |
pour le faire simplement tu ouvres ton fichier avec blocnote tu met rechercher "," remplacer par "|"
et mtn tu met ceci en separateur. sinon je vois pas ton probleme...
Marsh Posté le 04-02-2009 à 16:44:31
Bon, je sais pas trop d'où sort ton CSV... mais il est clair qu'il n'a pas un format correct...
Il faut bien que ça ressemble à ça :
"valeur1","valeur2","valeur3","valeur4"....
les virgules doivent être hors des guillemets (enfin, pour celles qui doivent être les séparateurs)
Marsh Posté le 03-02-2009 à 12:05:46
Bonjour,
J'ai un souci avec les séparateurs lors de la conversion d'un fichier csv en excel, en fait je veux convertir un fichier csv en excel donc je fait Outils-->Macro-->nouvelle macro et je fais l'importation puis je récupère le code.
Le problème c'est que dans ce fichier csv y a des chmps où j'ai des noms d'entreprises où on trouve parfois une virgule ( un des séparateurs ) et excel le prend comme un séparateur chose qui fauche complètement ma conversion.
Help please car j'ai beau cherché une solution je trouve pas