Bonjour à tous,
J'ai problème avec un fichier csv, extrait d'une base de donnée, qui se retrouve avec des sauts de ligne dans certains champs. Je crois que c'est un problème assez récurent au vu du nombre posts sur le sujet sur le net mais je n'ai pas trouvé de solution satisfaisante.
Je vous joint le fichier CSV en lui même (j'ai du le renomer en .txt pour pouvoir le joindre mais c'est bien un .csv chez moi)
poteau_export_02122020_084151_746-light.txt
Alors voilà si je l'ouvre avec notepad++ on voit qu'il y a un saut de ligne intempestif à la ligne 8 :

Quand je l'ouvre directement en double cliquant dessus j'ai le résultat suivant :

Donc il semble que nativement excel arrive a déterminé que ce saut de ligne n'est pas une fin de ligne mais est inclus dans un champ.
Par contre quand je veux l'ouvrir en vba je n'arrive pas avoir le même résultat.
Si j'ouvre avec la fonction open :
Workbooks.Open Filename:=wbPath
J'obtient ça :

Non seulement il ne gère pas correctement mon saut de ligne mais en plus il ne gère pas du tout les séparateurs ";".
Si j'utilise la fonction opentext :
1 2
| Workbooks.OpenText Filename:=wbPath, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, Semicolon:=True, Local:=True |
J'obtient ça :

Donc ici les séparateurs ";" sont bien gérés mais pas le saut de ligne.
Donc je voulais savoir si il existe une manière simple d'ouvrir le fichier en vba comme le fait nativement excel quand je double clic dessus ?
Sur un ancien projet j'avais mis en place une fonction qui ouvrait le fichier avec OpenText puis je cherchais les saut de ligne et je recomposait moi même mon fichier, mais c'est assez lourd mon fichier csv faisant plus de 70k lignes, donc j'aurais espéré trouver une solution plus simple.
Partager