Sub Traitement()
'Appel de la macro TEST avec ses paramètres
TEST "fichier1", "onglet1", "A1:H54"
TEST "fichier2", "onglet2", "G34:AB1025"
End Sub
Sub TEST(Fichier As String, Onglet As String, Plage As String)
Dim Source As Object, Requete As Object
Dim Onglet As String, Plage As String, Fichier As String
Dim Texte_SQL As String
'************************************************* **********************************
'******************** IMPORT ************************************************** **
'************************************************* **********************************
'Vérification de l'existence du fichier
If Dir(Fichier) = "" Then
MsgBox "Fichier introuvable!" & vbCrLf & Fichier, vbExclamation, "Test"
Exit Sub
End If
'connexion ADO
Set Source = CreateObject("ADODB.Connection")
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"data source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=No;"";"
'exerce la requete ADO sur les donnée à recopier
Texte_SQL = "SELECT * FROM [" & Onglet & "$" & Plage & "]"
Set Requete = CreateObject("ADODB.Recordset")
Set Requete = Source.Execute(Texte_SQL)
'restitue sur ton classeur
Cells(Rows.Count, 1).End(xlUp)(2).CopyFromRecordset Requete '(merci à Hasco)
'libère les pointeurs
Set Requete = Nothing
Set Source = Nothing
End Sub