Voilà le 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
Range("B2:B7").Select
    Range("B7").Activate
    Selection.Copy
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
        "ODBC;DSN=MS Access Database;DBQ=C:\Documents and Settings\G502249\Bureau\Liste des collaborateurs et leurs caractéristiques.accdb;De" _
        ), Array( _
        "faultDir=C:\Documents and Settings\Bureau;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
        )), Destination:=Range("$S$19")).QueryTable
        .CommandText = Array( _
        "SELECT C.Nom,C.Prénom  FROM Collaborateur C   where C.ID in   ('S23'," & Chr(13) & "" & Chr(10) & "'S5'," & Chr(13) & "" & Chr(10) & "'S8'," & Chr(13) & "" & Chr(10) & "'S1'," & Chr(13) & "" & Chr(10) & "'S60'," & Chr(13) & "" & Chr(10) & "'SE0'" & Chr(13) & "" & Chr(10) & ");" _
        )
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Tableau_Requête_n°3"
        .Refresh BackgroundQuery:=False
    End With
Je veux juste que la requête soit appliquée à des ID qui différent, pas toujours les mêmes. Normalement elles se trouvent dans la colonne B.

Moi dans mon exemple c'est de B2 à B7. et les ID sont ceux là:
S23, S5, S8, S1, S60, SE0.

Donc si c'es possible répondez moi.

Cdt,
SKIP