Bonjour,
Je me permets de vous écrire afin de demander de l'aide. J'utilise une requete SQL dans mon code vba pour récupérer des infos d'un classeur excel externe cependant je voulais savoir s'il est possible de faire une jointure entre mon classeur et le classeur externe?
Ex :
Tableau 1 (mon classeur) qui contient 2 colonnes A et B
Tableau 2 (classeur externe) qui contient 3 colonnes C D et F

le but est de faire une jointure entre les 2 tableau avec condition A=C et récupérer les colonnes du fichier externe C D et F

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
Sub test()
 
Tableau_Ext = "GLOBAL_NORD$"
Cellule = "A10:BK5000"
 
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,*.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
 
     texte_SQL = "SELECT * FROM [" & Tableau_Ext & Cellule & "]"
 
   Set Rst = New ADODB.Recordset
    Set Rst = Cn.Execute(texte_SQL)
 
   Feuil3.Range("A2").CopyFromRecordset Rst