Hallo Alex,
ich heiße dich hier im Forum auch Willkommen.
Wie ich sehe bist Du noch am testen, was für dich in Frage kommt. Und das Du auch auf die gesamtgeschwindigkeit beim einlesen achtest, finde ich sehr interessant. Würd mich hintereher, wenn Du fertig bist, sehr für das Ergebnis interessieren.
Nun, du hast jetzt schon 2 möglichkeiten um die Daten einzulesen. Aber wie heißt es da so schön?
Aller guten Dinge sind drei.
Ich möchte dir jetzt eine dritte möglichkeit vorschlagen. Sie ist aber mehr eine Variante, die Winfried vorgeschlagen hat. Und sie heißt:
=DDE()
Sie kann fast so ähnlich wie die ='file... Lösung gehanhabt werden. Jedoch hat sie noch einen vorteil, der nicht immer berücksichtigt wird, da selten darauf geachtet wird. Denn bei der ='file... Lösung, übrigens ist das auch der Fall bei dem Makro, werden die ausgewählten Tabellenblätter aus den einzelnen Verknüpften Dateien in der "Übersichts-Datei" versteckt eingebunden. Das kann man dadurch überprüfen, wenn man ein Blick in
-> Format
-> Tabelle
---> Einblenden
riskiert. Denn da sieht man alle Tabellenblätter aus den verknüpften Dateien, samt Pfad aufgelistet. Und wenn man jetzt nur eine versteckte Tabelle anklickt, und OK sagt, dann wird sie auch eingeblendet, und der gesamte Inhalt ohne besondere Formatierung wird als ein
zusätzliches Tabellenblatt angezeigt.
Diese Art von Verknüpfung ist aber auch einem Limit unterlegen, welches bei 256 liegt, nachzulesen
hier.
Man bedenke, das auch die Dateigröße der "Übersichts-Datei" dadurch anwächst. Und je nach Datenmenge der Verknüpften Tabellenblättern in den einzelnen Dateien, kann das ganz schön heftig ausfallen. Und bei ca. 190 Dateien fällt der größenzuwuchs recht deutlich auf.
Aber zurück zu =DDE()
Mit dieser Methode werden nur die angegebenen Zellinhalte
direkt in die "Übersichts-Datei" verknüpft, es werden also keine versteckten Tabellenblätter angelegt. Und folgedessen wächst die Dateigröße auch nicht so stark an.
Hier noch mal die Formel von Winfried ausgeschrieben (angepasst an die Windows notation).
Code: Alles auswählen
='file:///C:/zentrale/firma/testdata/kunde_0001.ods'#$Tabelle1.$E$3
Und im vergleich dazu mit DDE
Code: Alles auswählen
=DDE("soffice";"C:\zentrale\firma\testdata\kunde_0001.ods";"$Tabelle1.$E$3")
Okay, im ersten Augenblick erscheint sie etwas länger, aber das kommt nur dadurch, weil "soffice" noch zusätzlich aufgeführt werden MUSS!
Und jetzt folge ich mal Winfrieds Erklärung.
In
A1 = unveränderlicher Teil 1:
C:\zentrale\firma\testdata\kunde_
In
B1 = unveränderlicher Teil 2:
.ods
In
C1 = unveränderlicher Teil 3:
$Tabelle1.$E$3
Die Forlaufende Nummer wird auch hier mit TEXT und ZEILE ermittelt, jedoch fange ich bei Zeile 1 an, und setze die Nummerierung auch 4-Stellig an.
TEXT((ZEILE());"0000")
Und nun die gesamte Formel in D1
=DDE("soffice";
$A$1&
TEXT((ZEILE());"0000")&
$B$1;
$C$1)
In den Zellen A1, B1 und C1 kommen die Werte (Texte) so rein wie zu sehen, also ohne Doppelte Anführungszeichen!
Lass uns wissen wie Du zurecht gekommen bist.
Gruß
balu