Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Retour à la ligne dans les champs d'un CSV

2 réponses
Avatar
Le-Gritche
Bonjour,

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

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

Le s=E9parateur est donc le point-virgule, mais le pi=E8ge vient de la
possibilit=E9 d'avoir des sauts de ligne =E0 l'int=E9rieur de champs (qui
sont eux, d=E9limit=E9s par des guillemets ").

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

Je souhaite au contraire qu'il consid=E8re que ce retour chariot fait
partie du champ.
A l'ouverture directe du document, il ne prend pas en compte le
d=E9limiteur point-virgule, ce que je peux retraiter via une macro.
En revanche, pour le retour =E0 la ligne, apr=E8s de nombreuses
recherches, je ne trouve rien qui r=E9ponde =E0 ce probl=E8me.

Avez-vous des id=E9es ?

2 réponses

Avatar
JB
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 wrote:
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 ?


Avatar
Le-Gritche
On 10 juil, 09:41, JB wrote:
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 ?