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 les données d'un fichier .csv vers une feuille XL


Sujet :

Macros et VBA Excel

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

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2011
    Messages : 31
    Points : 4
    Points
    4
    Par défaut Importer les données d'un fichier .csv vers une feuille XL
    Bonjour,

    J'utilise le code ci dessous pour importer des données d'un fichier XL vers mon classeur XL. cependant, je cherche à faire la même chose sur des données cvs

    Objectif : récuperer les données d'un fichier csv vers mon classeur XL

    Pourriez vous SVP m'aider ou m'orienter vers une solution pour modifier le code ci-apres et ainsi récupérer les données d'un fichier csv?
    Merci d'avance,

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub import()
     
    Annee = UserForm1.ComboBox1
     
    Reponse = MsgBox("Voulez vous charger les données du fichier  pour l'année " & Annee & "?", vbQuestion + vbYesNo)
    If Reponse = vbYes Then
    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
     
        'Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Fichier & ";Extended Properties=Excel 8.0;"
       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,Structure_Utilisateu FROM [" & Ar(1) & "]"
     
        Set Rst = New ADODB.Recordset
        Set Rst = Cn.Execute(texte_SQL)
     
       Feuil3.Range("CM4").CopyFromRecordset Rst
     
        Set Feuille = Nothing
        Set oCat = Nothing
        Cn.Close
        Set Cn = Nothing
     MsgBox "Données importées"
     
    Else
     MsgBox "Vous n'avez exporté aucun fichier"
    End If
    End Sub

  2. #2
    Membre éprouvé Avatar de keygen08
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    545
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 545
    Points : 973
    Points
    973
    Par défaut
    Bonjour

    J'ai ceci pour importer un Csv sur une feuille Xls
    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
    Private Sub MAJ_ORS_click()
    Dim Fichier$, strLigne$, t() As String, dl&, Ws As Worksheet
    Dim num As Integer
    num = 1
    Fichier = "D:\SOURCES\donnees informatiques\csv\classeur.csv"
     
    Open Fichier For Input As #1
     
    Do While Not EOF(1)
        Line Input #1, strLigne
        t = Split(strLigne, ";")
        For i = 0 To UBound(t)
            If Len(t(i)) > 2 Then
                t(i) = Mid(t(i), 2, Len(t(i)) - 2)
            Else
                t(i) = "#"
            End If
            Next
        On Error Resume Next
     
        Set Ws = Sheets(num + 1)
        If Not Ws Is Nothing Then
            With Sheets(num + 1)
                dl = .Range("a65000").End(xlUp).Row + 1
                .Cells(dl, 1).Resize(1, UBound(t) + 1) = t
            End With
        End If
        Set Ws = Nothing
    Loop
    Close #1
     
    '    MsgBox " Mise à jour réussie!!"
    End Sub

Discussions similaires

  1. [XL-2007] Importer les données d'un fichier .csv vers une feuille XL
    Par aminee1666 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 26/07/2013, 01h48
  2. Réponses: 1
    Dernier message: 09/01/2012, 14h49
  3. Réponses: 3
    Dernier message: 20/08/2010, 21h48
  4. importer les données d'un fichier excel vers oracle 10g
    Par sarita_ima dans le forum Documents
    Réponses: 2
    Dernier message: 04/09/2009, 13h52
  5. [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

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