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 :

Importer des données d'un fichier CSV fermé


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut Importer des données d'un fichier CSV fermé
    Bojnour,

    J'utilise en VBA Excel la méthode ADO pour importer des données d'un fichier excel fermé, cependant je trouve des difficultés pour fair la même chose pour un fichier (.CSV).

    La code utilisé est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
     
    Sub import()
     
    Dim Cn As ADODB.Connection
    Dim oCat As ADOX.Catalog
    Dim Fichier As Variant
    Dim Feuille As ADOX.Table
     
    Dim Rst As ADODB.Recordset
    Dim texte_SQL As String
    Dim Ar() As String, i As Long
     
        Fichier = Application.GetOpenFilename("Fichier Excel, *.csv;*.xlsx")
        If Fichier = False Then Exit Sub
     
        Set Cn = New ADODB.Connection
        Set oCat = New ADOX.Catalog
     
     With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With
     
        Set oCat.ActiveConnection = Cn
        For Each Feuille In oCat.Tables
            i = i + 1
            ReDim Preserve Ar(i)
            Ar(i) = Feuille.Name
        Next Feuille
     
        texte_SQL = "SELECT Annee,Semaine FROM [" & Ar(1) & "]"
     
        Set Rst = New ADODB.Recordset
        Set Rst = Cn.Execute(texte_SQL)
     
       Feuil3.Range("C4").CopyFromRecordset Rst
     
        Set Feuille = Nothing
        Set oCat = Nothing
        Cn.Close
        Set Cn = Nothing

    Je cherche comment adapter les ligne suivant pour un fichier (.CSV).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     With Cn
            .Provider = "Microsoft.Jet.OLEDB.4.0"
            .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
                & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
            .Open
        End With

    Merci d'avance pour vos aides.
    Cordialement,
    Max

  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Regardes sur ce FAQ de Silkyroad
    http://excel.developpez.com/faq/inde...tFichierTXTado

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    Merci pour votre aide.Je n'arrive pas à trouver une solution pour importer les données d'un fichier CQSV, voila la modification qui j'ai fait sur le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
            "Dbq=" & Fichier & ";Extensions=asc,csv,tab,txt"

    Ca marche pas !!

    Cdt,
    MAx

  4. #4
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Le code bloque ou?

    Ca marche pas ne nous aide pas. quel message d'erreur?

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 0
    Points
    0
    Par défaut
    Le code est bloqué à ligne suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oCat.ActiveConnection = Cn
    Le message d'erreur :
    the connection cannot used to perform this operation. It is ether closed or invalid in this context
    Je n'arrive pas à addapter mon code pour un fichier CSV, les exemples que j'ai trouvé dans lien que vous m'avez donné nécessité de mentionner le chemin et le om du fichier ce qui n'est pas le cas dans mon code. Pour mon je cherge directement le fichier à importer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fichier = Application.GetOpenFilename("Fichier Excel, *.csv;*.xlsx")
    Cdt,

Discussions similaires

  1. Importer des données d'un fichier CSV pour Delphi 7
    Par PiPo123 dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/06/2013, 14h02
  2. Importer des données dans un fichier .csv
    Par programation dans le forum Simulink
    Réponses: 1
    Dernier message: 08/07/2011, 08h41
  3. [XL-2007] Importation des données sur plusieurs fichiers fermés
    Par starid dans le forum Excel
    Réponses: 8
    Dernier message: 18/07/2009, 17h54
  4. [MySQL] Importer les données d'un fichier CSV dans une base de données
    Par joueur dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 12/11/2008, 11h59
  5. Réponses: 3
    Dernier message: 13/12/2004, 13h54

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