Public Sub ConsoDatas(NomFichier$, NomFichierDest$, FeuilleSource$, FeuilleCible$)
Call AfficherMessageaAfficher("Importation des lignes ")
'Va chercher dans le classeur NomFichier (sans l'ouvrir) les données
'de la feuille FeuilleSource et les copie dans la feuille FeuilleCible
'du classeur actif, à la suite des données (éventuellement) déjà présentes.
'(La ligne d'entêtes de FeuilleSource n'est pas importée)
'inspiré de Rob Bovey, mpep
'nécessite une référence à la librairie
'Microsoft ActiveX Data Object 2.x Library
'http://www.excel-downloads.com/forum/35896-activer-la-reference-microsoft-activex-data-object.html
'ThisWorkbook.VBProject.References.AddFromFile ("C:\Program Files\Common Files\System\ado\msado20.tlb ")
'http://blogs.codes-sources.com/coq/archive/2007/09/21/classeurs-excel-via-oledb-et-pour-les-versions-2007-xlsb-xlsm-xlsx.aspx
'http://frederic.sigonneau.free.fr/code/Ado/ADOConsolidation.txt
'http://www.vbforums.com/showthread.php?t=461226
Dim rsData As ADODB.Recordset
Dim szConnect As String
Dim szSQL As String
Dim Li
Dim FeuilleDest As Object
Dim StrVersion As String
Dim Derniereligne As Long
'Version de Excel
'"12"= Excel 2007
'"11"= Excel 2003
StrVersion = Application.Version
Select Case StrVersion
Case Is < 12
'Pre-2007
''' Crée la chaîne de connexion
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties="Excel 8.0;HDR=YES;IMEX=1";
szConnect = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & NomFichier & ";Extended Properties=""Excel 8.0;HDR=NO"""
'"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & MonFichier.xls & ";Extended Properties=""Excel 8.0; IMEX=1"""
Case Is >= 12
' À partir de 2007
'Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties="Excel 12.0;HDR=YES;IMEX=1";
szConnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & NomFichier & ";" & _
"Extended Properties=""Excel 12.0;HDR=YES;IMEX=1"""
'.Provider = "Microsoft.Jet.OLEDB.4.0"
'.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
' & FichierBDStatistics & ";Extented Properties=""Excel 12.0;HDR=YES;"""
End Select
' La requête est basée sur le nom de la feuille. Ce nom
' doit se terminer par un $ et doit être entouré de crochets droits.
szSQL = "SELECT * FROM [" & FeuilleSource & "$];"
Set rsData = New ADODB.Recordset
rsData.Open szSQL, szConnect, adOpenForwardOnly, _
adLockReadOnly, adCmdText