Import fichier *.csv - problème de retour chariot

dieu08

XLDnaute Occasionnel
Bonjour,

Dans le fichier *.zip joint, l'import d'un fichier *.csv me pose des soucis.

Ce dernier provient du remplissage d'un formulaire (qui contient une zone des commentaires) via internet. Cette zone commentaire peut contenir des données importantes avec des retours chariot.

Lors de l'import via une macro, les données avec des retours chariot ressortent sur une ligne individuelle et non à la suite des informations de la ligne (confer fichier "resultats.xlsx" contenu dans le *.zip).

J'ai tenté de passer par du *.txt mais cela ne fonctionne pas mieux. J'ai trouvé des conseils qui m'ont orientés vers un format *.xml (2003) mais pas de meilleur résultat à l'ouverture du fichier par la macro.

Je suis preneur de toute solution qui peut être pilotée via du VB.

Le but final est de pouvoir mettre en forme mon fichier correctement pour une exploitation ultèrieure.

Merci d'avance.
 

Pièces jointes

  • export.zip
    8.9 KB · Affichages: 73
  • export.zip
    8.9 KB · Affichages: 64
  • export.zip
    8.9 KB · Affichages: 68

MJ13

XLDnaute Barbatruc
Re : Import fichier *.csv - problème de retour chariot

Bonjour Dieu

Tu peux essayer ce code en renommant ton fichier en .txt

Code:
Sub Importe_Csv_Renomme_En_Txt()
'
    Workbooks.OpenText Filename:="C:\test\export.txt", _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
        Array(9, 1), Array(10, 1), Array(11, 1)), TrailingMinusNumbers:=True
End Sub
 

dieu08

XLDnaute Occasionnel
Re : Import fichier *.csv - problème de retour chariot

Re,

En fait, le fichier *.zip comportait le fichier source *.csv et celui que j'obtiens à l'import dans Excel (donc avec de mauvais retours chariot). Ce n'était pas donc pas ce que je voulais obtenir...mais l'exemple du mauvais import.

Cela change qqchose ?
 

MJ13

XLDnaute Barbatruc
Re : Import fichier *.csv - problème de retour chariot

Re

OK, je commence à comprendre. Ce que tu demandes fait parti des problèmes les plus complexe sur Excel. Sinon, si tu l'ouvres via l'explorateur, est-il bien formaté?

Il faudrait voir si tu ne peut pas avoir des .csv ou .txt plus facilement exploitable ou essayer de lire le .csv ligne à ligne et supprimer les chr(13) et les chr(10).

Une autre solution consisterait à ouvrir le txt comme je te l'ai dit et de concaténer via macro sur la colonne 11 lorsqu'on a pas tout qui est rempli sur les lignes inférieures et supprimer ces lignes ensuite.

Si cela tente quelq'un, le challenge est intéressant :).
 

dieu08

XLDnaute Occasionnel
Re : Import fichier *.csv - problème de retour chariot

Bonjour MJ13,

Effectivement quand je l'ouvre avec l'explorateur, c'est parfait !

J'ai déjà fait ce ty pe de macro avec l'aide des membres du forum justement. Ce ne sont pas des manipulations forcement évidente pour un simple fichier *.csv !

Je vais essayer d'utiliser la macro que j'ai réalisé précédemment.

Merci à toi.
 

Pierrot93

XLDnaute Barbatruc
Re : Import fichier *.csv - problème de retour chariot

Bonjour,

peut être utilisé un code comme celui ci juste avant la conversion du fichier "exportModifie.csv" :
Code:
Option Explicit
Sub test()
Dim valeur As Long, Cible As String
Open "C:\MesDocs\Excel\export.csv" For Input As #1
valeur = FileLen("C:\MesDocs\Excel\export.csv")
Cible = Input(valeur, 1)
Close 1
Cible = Application.Substitute(Cible, """" & vbCrLf, "££")
Cible = Application.Substitute(Cible, vbCrLf, " ")
Cible = Application.Substitute(Cible, "££", """" & vbCrLf)
Open "C:\MesDocs\Excel\exportModifie.csv" For Append As #1
Print #1, Cible
Close 1
End Sub

libre adaptation d'un code de michelXLD:)
https://www.excel-downloads.com/thr...oter-dautres-applications-depuis-excel.92359/

bon après midi
@+
 

dieu08

XLDnaute Occasionnel
Re : Import fichier *.csv - problème de retour chariot

Bonjour Pierrot93,

C'est parfait avec ton adaptation de la macro du mondialement connu michelXLD !

J'ai intégré ton code dans ma macro avant l'ouverture par import (comme pour un fichier *.txt) et le format est correct.

Cela m'économise une pénible recherche.

Merci encore.
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87