Sub LireFichierFermé()
Dim texte_SQL As String
Dim xChemin As String
Dim xFichier As String
Dim xOnglet As String
Dim xPlage As String
Application.ScreenUpdating = False
'Définition des variables
xChemin = "Nom du chemin"
xFichier = "Nom du fichier" '(ne pas oublier l’extension .xls ou xlsx ou xlsm ....)
xOnglet = "Nom de l'onglet"
xPlage = "M12:Q12"
'Connexion ADO
Set Source = CreateObject("ADODB.Connection")
'Avant XL 2007
'Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;data source=" & xChemin & "\" & xFichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
'Après XL 2007
If Right(xChemin, 1) = "\" Then
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & xChemin & xFichier & ";Extended Properties=""Excel 12.0;HDR=NO;"";" 'IMEX=1";
Else
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & xChemin & "\" & xFichier & ";Extended Properties=""Excel 12.0;HDR=NO;"";" 'IMEX=1";
End If
'Exerce la requete ADO sur les donnée à recopier
texte_SQL = "SELECT * FROM [" & xOnglet & "$" & xPlage & "]"
Set Requete = CreateObject("ADODB.Recordset")
Set Requete = Source.Execute(texte_SQL)
'Ecriture des données lues dans le fichier en cours
ActiveSheet.Range("A1").CopyFromRecordset Requete 'Les données seront copiées en cellule A1 de l'onglet actif
'Ferme la requete
Set Requete = Nothing
Set Source = Nothing
Application.ScreenUpdating = True
End Sub