Bonjour à tous,

Dans le cadre d'un de mes projets je dois réalisé une macro qui effectue une requête SQL sur un champs d'une table situé dans un autre classeur. J'arrive pour le moment a réaliser une requête qui me permet de récuperer l'entièreté de la table, mais impossible pour moi d'ajouter une clause where.
Voici ma source de donnée (Pour des raisons de sécurité seul le nom des champs sera visible.
Nom : AIDE bdd.png
Affichages : 687
Taille : 185,7 Ko

Voici ensuite mon code

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 extractionValeurCelluleClasseurFerme()
    Dim Source As ADODB.Connection
    Dim Rst As ADODB.Recordset
    Dim ADOCommand As ADODB.Command
    Dim Fichier As String, Cellule As String, Feuille As String
    Dim Site As String
    Site = Workbooks("Tab2Bord.xlsm").Sheets("MAIN").Range("B3")
    Site = Left(Site, Len(Site) - 2)
    'Adresse de la cellule contenant la donnée à récupérer
    Cellule = "A1:M1839"
      'Pour une plage de cellules, utilisez:
      'Cellule = "A4:C10"
 
    Feuille = "table$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
    'Chemin complet du classeur fermé
    Fichier = "C:\Users\XX\Desktop\Travail\PARCVEHICULE2.xlsx"
 
    Set Source = New ADODB.Connection
    Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
 
    Set ADOCommand = New ADODB.Command
    With ADOCommand
        .ActiveConnection = Source
        .CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
    End With
 
    Set Rst = New ADODB.Recordset
    Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
 
    Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
 
    Workbooks("Tab2Bord.xlsm").Sheets("MAIN").Range("A63").CopyFromRecordset Rst
        Range("C63:C64").Select
    ActiveCell.FormulaR1C1 = "entite"
    Range("C63:C64").Select
    ActiveSheet.Range("$A$1:$M$1840").AutoFilter Field:=3, Criteria1:="entite"
    ActiveSheet.Range("$A$1:$M$1840").AutoFilter Field:=3, Criteria1:=Workbooks("Tab2Bord").Sheets("MAIN").Range("Z1")
      Rst.Close
    Source.Close
    Set Source = Nothing
    Set Rst = Nothing
    Set ADOCommand = Nothing
End  Sub
La syntaxe de la requête SQL me pose problème, je sais que ma requête devrai ressembler à " SELECT * FROM [" & Feuille & Cellule & "] Where entite LIKE" & Site & "
Mais cela me génèrent une érreur.
J'aimerais donc trouver la bonne syntaxe pour réaliser ma reqûete.
Merci par avance.
Cordialement

Alexis