Sub testAdO()
Dim fichier$, nomfeuille$, DispoCel As Range
fichier = ThisWorkbook.Path & "\exemple source.xlsx"
nomfeuille = "feuil1"
Set DispoCel = [A1]
Set plage = [A1:F3]
resADO plage, fichier, nomfeuille, DispoCel
End Sub
Function resADO(plage, fichier, nomfeuille, destination)
'Dim Cn As ADODB.Connection, texte_SQL$, Rst As ADODB.Recordset
Dim Cn As Object, texte_SQL$, Rst As Object
Set Cn = CreateObject("ADODB.Connection")
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & fichier & ";Extended Properties=""Excel 12.0;HDR=NO;"";"
texte_SQL = "SELECT * FROM [" & nomfeuille & "$" & plage.Address(0, 0) & "]" 'la requête. ' Attention!!!!!!! à ne pas oublier le symbole "$" après le nom de la feuille.
Set Rst = CreateObject("ADODB.RecordSet")
Set Rst = Cn.Execute(texte_SQL)
destination.CopyFromRecordset Rst
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing: Set Rst = Nothing
End Function