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