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

  • Initiateur de la discussion Initiateur de la discussion dieu08
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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 ?
 
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 🙂.
 
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.
 
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
@+
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
40
Affichages
2 K
D
  • Question Question
2
Réponses
28
Affichages
2 K
Deleted member 441486
D
Retour