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 :

ouvrir un fichier csv en vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut ouvrir un fichier csv en vba
    bonjour tout le monde,
    là j'ai un souce pour ouvrir un fichier csv en vba avec separateur ";"
    mais le souci, c'est qu'il ne tiens pas compte du separateur et il met toute la ligne dans la premiere colonne.

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub generation_IUE_PRIMES()
     
         Workbooks.OpenText Filename:="C:\Documents and Settings\T05932\Bureau\Interfaces universelles\ouput primes.csv", StartRow:=1, _
        DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter _
            :=True, Semicolon:=True, DecimalSeparator:=","
     
    End Sub
    y'a til quelqu'un qui sache comment me sortir de là

    merci d'avance

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    En fait tu veux que le séparateur soit point-virgule?
    Là tu as spécifié séparateur = ":"

    Si ";" est l'option par défaut, tu ne t'occupes pas des propriétés relatives au séparateur.
    Si ce n'est pas le cas :
    tu laisses tomber semicolon (séparateur = ":")
    Other = True
    OtherChar = ";"

    En gros.

    PGZ

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    en effet mon separateur est le ";"
    ça me donne le meme resultat avec le code suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Workbooks.OpenText Filename:="C:\Documents and Settings\T05932\Bureau\Interfaces universelles\ouput primes.csv", StartRow:=1, _
        DataType:=xlDelimited, TextQualifier:=xlNone, other:=True, Otherchar:=";", DecimalSeparator:=","

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Tu peux mettre un petit bout de ton .csv?

    PGZ

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    en voici un bout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Code Société;Partenaire;Date comptable;DEVISE;Code nature Assurétat;Territoire;Ss Catégorie Minist;Type de dommage;DROC.Comptence;Exercices < N-11;Exercice N-11;Exercice N-10;Exercice N-9;Exercice N-8;Exercice N-7;Exercice N-6;Exercice N-5;Exercice N-4;Exercice N-3;Exercice N-2;Exercice N-1;Exercice N;Exercice N+1;Code produit IARD;Réseau;Texte;BU;Société S/L;Type d'affaire;Ligne de produit;Produit ;Apporteur	
    Gsfs;25;31122008;EUR;93100;FR;31000;X;2008;;;;;;;;;;;;3538	63;;;P080;COU;;Esdf;ZZ999Z;;L450;A453;
    qdfs;25;31122008;EUR;93100;FR;20100;X;2008;;;;;;;;;;;;955789	18;;;P105;COU;;Efd;ZZ999Z;;L340;A340;
    sfs;25;31122008;EUR;93100;FR;31000;X;2008;;;;;;;;;;-5	79;;;;;P080;COU;;Efs;ZZ999Z;;L472;A474;
    dfsf;25;31122008;EUR;93100;FR;35200;X;2008;;;;;1	41;;;;;;;;;;E030;COU;;Ef;ZZ999Z;;L660;A660;

  6. #6
    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
    Regarde ici, le dernier exemple.
    Lis bien tout
    Bonne soirée

  7. #7
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Hello.

    J'ai fait un essai et cela marche très bien, avec un fichier .txt.

    OpenText c'est pour ouvrir un fichier préfixé .txt
    Si ton fichier a un préfixe .csv, utilises la méthode Open.

    PGZ

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    je n'y comprends plus rien
    il semble prendre comme separateur "," alors que dans mes options regionales, c'est le ";".
    quand j'ouvre le fichier manuellement tout se passe bien sans boite de dialogue

  9. #9
    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 pgz
    J'ai fait un essai et cela marche très bien, avec un fichier .txt.
    OpenText c'est pour ouvrir un fichier préfixé .txt
    PGZ
    Eh non, avec un séparateur "," on est obligé de passer par un fichier texte. Et comme un csv est un fichier texte, soit on renomme l'extention, soit on ne la renomme pas (juste un problème de version)
    Maintenant tu fais comme tu veux.
    Ceci dit,
    Si ton fichier a un préfixe .csv, utilises la méthode Open.
    Non encore une fois, un csv attend un séparateur ";"
    C'est pour ça que, si c'est une virgule... etc.
    En outre, au moins en 2003, VBA ne reconnaissait pas les ";" (semicolumn) même si, quand on enregistre la macro, l'ouverture manuelle dans Excel fonctionne.

    Si "on" se donne du mal pour préciser les choses, c'est précisément parce que ça nécessite d'être précisé.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    a defaut d etrouver une solution a mon probleme, je changer le format de mon fichier.
    mais ça suis toujours interessé de savoir pourquoi ça coince

    merci pour vos contributions

  11. #11
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Eh non, avec un séparateur "," on est obligé de ...
    Non encore une fois, un csv attend un séparateur ";"
    J'ai du rater une marche :
    Citation Envoyé par nabelou1
    en effet mon separateur est le ";"

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 124
    Par défaut
    en fait ; comme il reconnaissait pas le ";",
    j'ai voulu savoir quel caractere il attendais pour faire la saparation.

    j'ai modifié mon csv en y inserant une virgule et il a bien fait la separation malgré que je lui ai specifié le ";" dans le code

  13. #13
    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
    @ pgz : Tu as raison, j'ai lu trop vite
    Ce qui n'empêche qu'avec VBA2003, par macro, il est nécessaire d'ouvrir le csv en tant que txt.

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/08/2013, 09h47
  2. [AC-2003] Ouvrir un fichier .csv avec ultraedit en vba
    Par gontrand16 dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/08/2011, 19h54
  3. Ouvrir un fichier CSV en VBA
    Par Sinbad dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/08/2010, 08h06
  4. ouvrir un fichier csv en vba
    Par giom182 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2009, 12h17
  5. [VBA-E]Ouvrir un fichier.csv ou un fichier.txt séparateur ";"
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2007, 12h09

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