IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Lecture de fichier CSV et chaînes contenant des retours à la ligne [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Octobre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Octobre 2015
    Messages : 7
    Par défaut Lecture de fichier CSV et chaînes contenant des retours à la ligne
    Bonjour,

    Je souhaite lire un fichier CSV et récupérer son contenu, dans le but d'alimenter une Base de données, voilà un exemple de données que je rencontre :

    ID,Ville,Nom,Description,Num
    1,Nantes,Nom1,Test1,10
    2,Paris,Nom2,Test2,20
    3,Lyon,Nom3,"Test sur plusieurs
    lignes 3"
    ,30
    4,Nice,Nom4,Test4,40

    Sur le champ Description, certaines chaînes de caractères sont sur plusieurs lignes (retours charriot) et encadrés par des guillements, et ceci est gênant dans la lecture ligne par ligne du fichier. Est-ce que quelqu'un a une idée pour lire ce genre de fichier ?

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par Ptiparu Voir le message

    Sur le champ Description, certaines chaînes de caractères sont sur plusieurs lignes (retours charriot) et encadrés par des guillements, et ceci est gênant dans la lecture ligne par ligne du fichier. Est-ce que quelqu'un a une idée pour lire ce genre de fichier ?

    Merci
    Vu les retours de chariot, il serait plus simple de l'ouvrir dans un classeur Excel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub OuvrirCSV_Virgules()
     Application.DisplayAlerts = False
     Set wb = Workbooks.Open(Filename:="C:\Users\client\Documents\test_csv_Ori_virgules.csv", local:=False)
     Application.DisplayAlerts = True
    End Sub

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    comment le fichier texte csv a été vérifié ? Pas avec Notepad j'espère car il n'est pas multi-plateformes !
    Il y a de fortes chances de confusion entre fin de lignes d'enregistrement csv et contenu d'une colonne
    car si le développeur a respecté la norme, leurs séparateurs sont différents … Sinon c'est un boulet !

    Mettre en pièce jointe le fichier texte pour vérification …

    Si une des méthodes pour lire un fichier texte a bien été paramétrée, aucun souci.
    Mais évidemment sans publier le code …

    ______________________________________________________________________________________________________
    Je suis Charlie, Bardo, Sousse

  4. #4
    Membre régulier
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Octobre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Octobre 2015
    Messages : 7
    Par défaut
    Merci Docmarti, ta solution semble fonctionner. Le fichier CSV est bien interprété lorqu'il est ouvert dans un classeur, je n'ai plus qu'à récupérer ls infos dans les cellules.

    Marc, je débute en VBA donc mon code était on ne peux plus basique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Open "V:\Data\Informatica\PHIPHI_TEST_201510271645_MA_TABLE_CLIENT.csv" For Input As #1
    Dim LineFromFile
     
    Do Until EOF(1)
     
            Line Input #1, LineFromFile
            Debug.Print LineFromFile
     
    Loop
     
    Close #1
    Je me retrouvais donc avec [3,Lyon,Nom3,"Test sur plusieurs] et [lignes 3",30] considérées comme deux lignes différentes, chose que je ne voulais pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture de fichiers CSV mais aussi des entetes
    Par bendesarts dans le forum MATLAB
    Réponses: 4
    Dernier message: 01/10/2014, 12h00
  2. Réponses: 4
    Dernier message: 26/06/2012, 11h34
  3. Réponses: 3
    Dernier message: 11/06/2007, 11h20
  4. lire fichier csv et en extraire des infos
    Par isaglada dans le forum VBScript
    Réponses: 2
    Dernier message: 12/02/2007, 13h04
  5. Réponses: 4
    Dernier message: 29/08/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo