re,
voici un exemple à adapter,
nécessite d'activer la référence: Microsoft ActiveX Data Objects xx Library
VBE Menu >= Outils >= Reference
Sub Read_File_xlsx()
Dim repertoire As String, Fichier As String, Feuille As String, AddrLire As String
Dim Ligne As Long, oFile As Object
repertoire = "C:\Users\isabelle\Documents\Test3" 'à adapter
Feuille = "Feuil1" 'à adapter
AddrLire = "A1:D10" 'à adapter
Ligne = 1 'les données sont transférées à partir de la ligne 1 sur la feuille active.
Set fso = CreateObject("Scripting.FileSystemObject")
Set sfoFolder = fso.GetFolder(repertoire)
For Each oFile In sfoFolder.Files
If Right(oFile, 5) = ".xlsx" Then 'à adapter
Set cnn = New ADODB.Connection
'--- Connexion ---
With cnn
.Provider = "Microsoft.Jet.OLEDB.12.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& oFile & ";Extended Properties=""Excel 12.0;HDR=NO;"""
.Open
End With
'--- récupérer les données --
Set rs = cnn.Execute("SELECT * FROM [" & Feuille & "$" & AddrLire & "]")
Range("A" & Ligne).CopyFromRecordset rs
rs.Close
Ligne = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
End If
Next
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub