Hallo BigBen,
danke für Deine Ausführungen und Hinweise. Leider hat die Datei im Netzwerk um die 25 Spalten und über 50000 Zeilen, wovon ich effektiv 2Spalten benötige. Dementsprechend dauert das Workbook.Open lange. Das öffnen und auslesen per ADODB ist hier wesentlich fixer - bis auf das Problem das Sie vorher geöffnet werden musste.
Allerdings habe ich jetzt auch eine andere Lösung gefunden. Ich habe den Code jetzt vom Early Binding auf's Late Binding umgestellt und es funktioniert jetzt adHoc. Wo hier der genaue Unterschied (ich tippe darauf das Set hier etwas entscheidenes anders macht) liegt, hat mir meine Glaskugel nicht verraten ;)
Im groben mache ich das jetzt so:
Dim adoVerbindung As Object
Dim adoRecordset As Object
Dim sVerbindung As String
Dim sQuery As String
' ADODB Verbindungsstring basteln
sVerbindung = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0 Xml;HDR=YES';Data Source=\\sharepoint.site\folder\folder\exceldatei.xlsx"
' ADODB verbindung öffnen
On Error GoTo adoError
Set adoVerbindung = CreateObject("ADODB.Connection")
adoVerbindung.Open (sVerbindung)
Set adoRecordset = CreateObject("ADODB.Recordset")
sQuery = "Select Spalte1 from [Tabelle1$]"
With adoRecordset
.Source = sQuery
.ActiveConnection = adoVerbindung
.Open
loZielTabelle.Range(2, 1).CopyFromRecordset adoRecordset
End With
Wie gesagt, jetzt geht's auch direkt per ADODB. Vielen Dank für Deine Hilfe :)
Gruß
Thomas
|