Voici mon problème: Je souhaite récupérer des données d'une feuille de calcul Excel Excel (* .xlsx) dans une autre feuille de calcul Excel sans l'ouvrir. J'ai donc donné une chance à OLEDB avec le fournisseur ACE.Récupération des données d'une feuille de calcul Excel dans une feuille Excel dans un bloc
La connexion a fonctionné et j'ai fait ce que je voulais, en bouclant mon jeu d'enregistrements. Mais maintenant je veux une optimisation, c'est-à-dire mettre mon jeu d'enregistrements en Excel dans un bloc au lieu de le boucler.
pourquoi je fait quelque chose comme ceci:
Sub RetrieveData()
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
With con
.Provider = "Microsoft.ACE.OLEDB.12.0"
.ConnectionString = "Data Source=Path\File.xlsx; _
Extended Properties=""Excel 12.0 Xml;HDR=NO;IMEX=1"""
.Open
Set rs = .Execute("Select * From [Sheet1$]")
'Problem here
Range(Cells(1, 1), Cells(rs.RecordCount, rs.Fields.Count - 1)) = rs
.Close
End With
Exit Sub
La chose ici est que je suis en train de traiter avec les technologies que je ne connais pas grand-chose à leur sujet et ne peut pas trouver de la documentation sur les (par exemple Microsoft ACE 12.0 Provider pour OLEDB).
Cordialement.
(Et ne hésitez même pas à corriger ma pauvre grammaire)
Merci beaucoup! Cela fonctionne très bien! Je me demandais: comment avez-vous compris cela? Ce serait mieux pour tout le monde si je pouvais juste résoudre mes problèmes moi-même;) –
Quelques années d'expériences :) pour plus d'informations, vous pouvez vérifier [ce lien] (http://msdn.microsoft.com/fr-fr/ library/ff839240% 28v = office.14% 29.aspx) ... –