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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 ?
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 <jimmy_thuill...@yahoo.fr> 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.
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 ?
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 ?
On 10 juil, 09:41, JB <boisgont...@hotmail.com> 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 ?
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 ?