XL 2019 Remplacer les "," par ";" d'un fichier CSV

bennp

XLDnaute Occasionnel
Bonjour à tous,

comme le titre l'indique, remplacer les "," par ";" d'un fichier CSV

le problème c'est que j'ai une colonne "description" qui contient du texte avec des "," je n'arrive donc pas à transformer mon csv en colonnes, quelqu'un aurait une idée svp ?

Dans l'idée, il faudrait que je transforme tous les "," en ";" sauf si les "," se trouvent entre des guillemets

Merci d'avance

Benoit
 

Pièces jointes

  • csv ville.xlsx
    10 KB · Affichages: 15

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bennp,
Je pense qu'on peut le dire en trois coups :
1- Dans fichier txt, Remplacer "," par £ ou tout autre caractère non utilisé.
2- Importez dans XL
3- Remplacez £ par ","
Vérifiez. Il reste quelques résidus comme 22,3km² qui est séparé.
 

Pièces jointes

  • Texte.xlsx
    10.7 KB · Affichages: 5

bennp

XLDnaute Occasionnel
non, ça vas pas du tout ! Voici comment je souhaiterais que ce soit, d'ailleurs le 1er fichier n'atait pas bon, j'avais rajouté des guillemets autour de chaque virgules...je joins le nouveau aussi
 

Pièces jointes

  • bien rangé.xlsx
    11.5 KB · Affichages: 8
  • csv ville.xlsx
    10 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Votre fichier csv ville n'a pas une structure csv.
Dans un fichier csv tous les champs d'une donnée sont sur une même ligne séparé par un séparateur.
Son descriptif est en première ligne.
Donc il s'attend à avoir sur une même ligne : order,url,regions,regions-href,villes,villes-href,pages,pages-href,email,adresse,description,horaires,siteweb , ce qui n'est pas le cas.
A chaque ligne correspond une nouvelle donnée.
Dans l'état vous aurez du mal à ré associer plusieurs lignes à une même donnée.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
J'ai regardé un fichier csv, mise en PJ ( j'ai mis un zip car le format csv n'est pas autorisé par le site )
Si vous ouvrez ce fichier csv avec Notepad ou tout autre logiciel basique de texte, vous verrez que tous les champs d'une donnée sont sur une même ligne. ( ici séparé par ; )
Essayer d'ouvrir votre csv avec Notepad, quelle allure a t-il ? A t-il une ligne par donnée avec tous les champs ou y a t-il plusieurs lignes pour une même donnée ?
( Cette manip permet de différencier une erreur de génération de csv d'une erreur de conversion XL. )
 

Pièces jointes

  • euromillions_201902.zip
    16.5 KB · Affichages: 2

bennp

XLDnaute Occasionnel
non il y a bien des retours à la ligne il faudrait restructurer le fichier du coup ? Pas sûr que ce soit possible sans macro, vous en pensez quoi ? Ce qui est sûr c'est qu'il faut changer les "," en ";" sauf quand ça fait parti d'un texte entre guillemet et du coup tout remettre sur une même ligne. chaque ligne doit commencer par "1579"
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
On peut tout faire par macro. Le problème est de connaitre les règles.
Comme l'émetteur ne respecte pas la norme csv, comment fournira t-il les fichiers demain ?
Pouvez vous envoyez le fichier csv ville.xlsx avec plus de données pour faire un test.
Mais ça va pas être facile car dans la chaine :
Situé à 175 mètres d'altitude, le Ruisseau de Claoué, le Ruisseau de Lourtou, le Ruisseau de Saint-Pierre sont les principaux cours d'eau qui traversent la commune de Launac.
Comment dire à XL que les "," ne sont pas des séparateurs mais des virgules ? :mad:
Un autre exemple significatif. Ligne 3 :
Rue du Parc 31330 LAUNAC,Launac est un village français, situé dans le département de la Haute-Garonne et la région de l'Occitanie
Si on décompose :
Rue du Parc 31330 LAUNAC, la virgule est un séparateur.
Launac est un village français, la virgule est ... une virgule.

Ne serait il pas possible de demander au producteur d'utiliser le ; comme séparateur.
Si le ; est unique et séparateur alors en VBA on peut s'en sortir puisque les premiers champs commencent toujours par 1579.
 
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Une solution avec de l'huile de coude:
1- Ouvrir le fichier csv avec Notepad.
2- Changer tous les "," par ";" avec Remplacer par
3- Sur la première ligne changez les , par ; ( vous obtenez le csv qui est dans le zip en PJ )
4- Enregistrer
5- Sous XL ouvrez le csv. ( vous obtenez le xlsx qui est en PJ )
Cela suppose que dans les descriptifs il n'y ait jamais de points virgule.
 

Pièces jointes

  • villes2 remanié.zip
    2 KB · Affichages: 2
  • villes2 remanié.xlsx
    11.4 KB · Affichages: 3

Discussions similaires

Réponses
26
Affichages
370

Statistiques des forums

Discussions
312 145
Messages
2 085 762
Membres
102 966
dernier inscrit
InitialPP