Sub RequeteClasseurFerme1()
Dim Cn As ADODB.Connection
Dim fichier As String
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
Dim conn As Object
'Définit le classeur fermé servant de base de données
fichier = Sheets("données").Cells(2, 2).Value & "\" & Sheets("données").Cells(2, 3).Value
'Nom de la feuille dans le classeur fermé
NomFeuille = "7$"
cellule = "B4:H19"
Set Cn = New ADODB.Connection
'--- Connection ---
connstring = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source='" & fichier & _
"';Extended Properties='Excel 12.0;HDR=NO;IMEX=1';"
Cn.Open connstring
'-----------------
'Définit la requête.
'/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille.
texte_SQL = "SELECT * FROM [" & NomFeuille & cellule & "]"
Set Rst = New ADODB.Recordset
Rst.Open texte_SQL, Cn
'Set Rst = Cn.Execute(texte_SQL)
'Ecrit le résultat de la requête dans la cellule A2
Range("B4").CopyFromRecordset Rst
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing
End Sub