Retour à la ligne dans les champs d'un CSV

Le
Le-Gritche
Bonjour,

Une application web me permet d'exporter des données sous forme d'un
CSV.
Le format obtenu est le suivant :

"Jean";"Paul";"Jules
Jim";"Marc"

Le séparateur est donc le point-virgule, mais le piège vient de la
possibilité d'avoir des sauts de ligne à l'intérieur de champs (qui
sont eux, délimités par des guillemets ").

Sous windows 2000, Excel 2000 (il semble que 2003 ne connaisse pas ce
problème), j'exporte depuis Internet Explorer, le CSV s'ouvre
automatiquement sous Excel, mais les retours chariot dans les champs
sont considérés comme des séparateurs de fins de ligne : dans
l'exemple ci-dessus, Excel commence une nouvelle ligne à Jim.

Je souhaite au contraire qu'il considère que ce retour chariot fait
partie du champ.
A l'ouverture directe du document, il ne prend pas en compte le
délimiteur point-virgule, ce que je peux retraiter via une macro.
En revanche, pour le retour à la ligne, après de nombreuses
recherches, je ne trouve rien qui réponde à ce problème.

Avez-vous des idées ?
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4900671
Bonjour,

Supprime les codes 10 et 13 entre les guillemets.

Sub LitCaractèreParCaractère()
ChDir ThisWorkbook.Path
nf = "essai5.txt"
Open nf For Input As #1
Open "temp.txt" For Output As 2
témoin = False
Do While Not EOF(1)
c = Input(1, #1)
If c = Chr(34) Then témoin = Not témoin
If (c = Chr(10) Or c = Chr(13)) And témoin Then c = ""
Print #2, c;
Loop
Close #1, #2
'Kill nf
'Name "temp.txt" As nf
End Sub

JB

On 10 juil, 09:21, Le-Gritche
Bonjour,

Une application web me permet d'exporter des données sous forme d'un
CSV.
Le format obtenu est le suivant :

"Jean";"Paul";"Jules
Jim";"Marc"

Le séparateur est donc le point-virgule, mais le piège vient de la
possibilité d'avoir des sauts de ligne à l'intérieur de champs (qui
sont eux, délimités par des guillemets ").

Sous windows 2000, Excel 2000 (il semble que 2003 ne connaisse pas ce
problème), j'exporte depuis Internet Explorer, le CSV s'ouvre
automatiquement sous Excel, mais les retours chariot dans les champs
sont considérés comme des séparateurs de fins de ligne : dans
l'exemple ci-dessus, Excel commence une nouvelle ligne à Jim.

Je souhaite au contraire qu'il considère que ce retour chariot fait
partie du champ.
A l'ouverture directe du document, il ne prend pas en compte le
délimiteur point-virgule, ce que je peux retraiter via une macro.
En revanche, pour le retour à la ligne, après de nombreuses
recherches, je ne trouve rien qui réponde à ce problème.

Avez-vous des idées ?


Le-Gritche
Le #4617891
On 10 juil, 09:41, JB
Bonjour,

Supprime les codes 10 et 13 entre les guillemets.


C'est exactement ce que je cherche à faire, mais dans la configuration
des postes utilisateurs, IE ne demande pas l'enregistrement du fichier
et ouvre directement Excel soit en "autonome", soit encapsulé dans IE
lui-même.

De ce fait, je n'ai pas de fichier txt enregistré par l'utilisateur -
le essai5.txt dans ton exemple, puisque les données sont chargées
directement dans Excel.

Est-il possible de faire une lecture "brute" des données dans ce cas ?

Publicité
Poster une réponse
Anonyme