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 :

Récupérer des données CSV avec Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut Récupérer des données CSV avec Excel
    Bonjour,

    J'aimerai savoir si c'est possible de récupérer les informations d'un fichier csv sans avoir à le copier sur une feuille excel?
    Car déjà ça prend du temps, et j'ai une trentaine de fichiers csv à analyser, dont l'un qui dépasse les 65000 lignes, donc je ne peux pas l'ouvrir avec excel.

    Comment récupérer les données de ce fichier?

    Merci beaucoup à tous!

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonjour

    Tu peux lire le fichier ligne par ligne
    un exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    dim chemin as string
    Dim ligne as integer
    Dim nf As Integer
     
     
    nf = FreeFile  'trouve un numéro de fichier libre
    chemin="C:\cocument.csv"    'Ton chemin de fichier 
     
    Open chemin For Input As #nf  'ouverture du fichier
     
    Do
        Line Input #2, Ligne  'lecture de la ligne elle est placé dans la variable ligne
    Loop While Left(Ligne, 4) <> "Bob" And Not EOF(nf)  'je boucle jusqua avoir un ligne qui commence par Bob ou la fin du fichier
    En gros tu lit ligne après ligne et tu récupère les donnée dans une variable texte tu fait un peu de traitement de chaine de caractère (la fonction split te sera sans doute utile)Pour la manipulation de chaines de caractères
    http://silkyroad.developpez.com/VBA/...nesCaracteres/

    C'est pas le top mais je ne vois pas quoi faire d'autre

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Merci Krovax! c'est déjà top pour moi!!
    J'utiliserai Split, pour récupérer les colonnes.
    à ton avis je peux stocker ça dans un tableau en mémoire, sa passera? car ya vraiment beaucoup de ligne donc jme dis tant qu'à faire autant mettere ça directement en mémoire et l'exploiter ensuite à la limite.

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    C'est a essayer mais imaginons que tu es 10 infos par ligne ca te fera un tableau de 650000 données
    si ce sont des décimale en simple précision ils prennent 4 octect
    on en es a une variable qui fait plus de 2Mo rien que pour les valeur ca risque d'être lourd a manipuler
    (je ne sais pas comment est stocké la position dans une tableau et quelle sont les limites)

    Si tu peux traiter les infos ligne par ligne je te le conseil fortement
    Le gros inconvénient c'est que je ne sais pas remonter d'une ligne (je ne sais même pas si c'est possible)

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par mmmxtina Voir le message
    ... et j'ai une trentaine de fichiers csv à analyser...
    Quel type d'analyse ?

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Re bonjour!!!

    Alors j'ai commencer à tester, à première vu sa fonctionne, mais le truc c'est que les données, je dois les insérer dans une requêtes SQl, et bien évidemment la première ligne de mon fichier c'est des titres!!!
    tu sais comment je peux faire pour lire à partir de la 2e ligne??
    meric beaucoup!

  7. #7
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Je viens de voir que j'ai d'autres messages!!!

    alors ouskel'n'or, je dois récupérer certyaines données, et les insérés dans une base de données. et le truc c'est que si_ il lit la première ligne (qui contient que des titres, ça plante déjà!!!) hi!

    Une idée?

    Merci beaucoup!

  8. #8
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    bon j'ai juste testé la première variable et là ça fonctionne bien!!
    merci en tout cas!!!
    par contre dès que j'insère une ligne, j'ai le droit à un message de confirmation, quelqu'un sait comment éviter ce genre de message?
    merci!!!

  9. #9
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    lire des fichiers plats massifs de manière répétée me conduit à te recommander une solution de type DAO / ADO.

  10. #10
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 57
    Par défaut
    Bonjour caféine!
    Qu'est-ce-que c'est ADO et DAO?

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/01/2014, 14h44
  2. Utiliser des données XML avec Excel ?
    Par sky1989 dans le forum Excel
    Réponses: 3
    Dernier message: 29/03/2012, 21h48
  3. Comment récupérer des données enregistrées avec Rapid File ?
    Par didmarj2a dans le forum Bases de données
    Réponses: 2
    Dernier message: 21/03/2008, 09h49
  4. Grouper des données texte avec excel
    Par emule16 dans le forum Excel
    Réponses: 3
    Dernier message: 08/01/2008, 22h15
  5. Réponses: 1
    Dernier message: 31/01/2007, 11h59

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