Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dynamisch Inhalt aus Zelle anderer Datei

Dynamisch Inhalt aus Zelle anderer Datei
13.12.2013 16:05:38
Alex
Hallo zusammen,
ich habe schon einige Male wirklich vorzügliche Hilfe zu diversen Problemstellungen in diesem Forum gefunden, danke an alle Beitragenden und besonderen Dank an Hajo, wirklich klasse sowohl das Forum, als auch deine kompetente Hilfe.
Zu meinem Problem:
ich möchte in einer Zelle den Inhalt einer anderen übernehmen, z.B. so ='C:\Test\[XY1234.xls]XY-A'!$C$10
Das möchte ich aber dynamisch gestalten, sprich die Informationen stehen je Fall in einer anderen Excel-Datei, aber glücklicherweise ist die Benennung der Excel-Dateien immer nach dem gleichen Muster:
XY1234.xls bezieht sich auf den Schlüsselwert "1234", der auch in dem Excel-Dokument mit der geplanten Formel, jeweils in der entsprechenden Zeile steht, wo dann auch die Info aus C10 hinein soll.
Ein wenig schwer zu erklären bzw. unverständlich erklärt, vielleicht besser verständlich mit meinem Ansatz dazu:
='C:\Test\[XY' & A1 & '.xls]XY-A'!$C$10
Also in Spalte A stünde jeweils ein Teil (hier: "1234" gleichzeitig Schlüsselwert) des Dateinamens der Zieldatei und in C10 der Zieldatei steht die Info, die ich übertragen möchte.
Im zweiten Schritt gibt es noch ein weiteres Problem, und zwar, dass ich jeweils das Tabellenblatt mit dem "größten" Buchstaben benötige, also hier das Tabellenblatt "XY-A", wenn es aber noch "XY-B","XY-C","XY-D" etc. gäbe, dann benötige ich das letzte dieser Tabellenblätter. Ich glaube hier komme ich wenn überhaupt nur mit einem Makro weiter?
Hoffe, mir kann dort jemand weiterhelfen und dass ich mein Problem einigermaßen verständlich beschreiben konnte.

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
13.12.2013 20:02:54
Beverly
Hi Alex,
mal eine generelle Bemerkung: per "dynamischer" Formel (INDIREKT()) kannst du nur Daten ins Tabellenblatt holen, wenn die andere Mappe geöffnet ist.


AW: Dynamisch Inhalt aus Zelle anderer Datei
14.12.2013 01:46:42
Alex
Hallo Karin,
die Funktion kannte ich noch nicht und sie ist in jedem Falle sehr interessant und teilweise genau das, was mir gefehlt hat, als ich versucht habe den Zellbezug zusammenzubauen.
Dass die Funktion nur sehr sparsam verwendet werden sollte, weil es ständig zu Neuberechnungen, bei Änderungen, führen kann, stört in meiner Datei eher nicht.
Klasse Hinweis also, vielen Dank!
Allerdings verzweifle ich umso mehr an der Tabellenblatt-Problematik, ich habe keine Ahnung, ob man das recht simpel umsetzen kann. Wenn der höchste, überhaupt vorkommende Buchstabe in der Tabellenblatt-Syntax als Z (sprich "XY-Z" als letztmöglicher Name des Tabellenblattes) angenommen würde, müsste ich ja theoretisch alle "XY-A" bis "XY-Z" in eine Rangfolge bringen.
Dann, so würde ich mir vorstellen, nach dem höchsten Rang suchen, oder von Tabellenblatt "XY-Z" starten und prüfen, ob das jeweilige Blatt überhaupt existiert.

Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
14.12.2013 08:41:12
Beverly
Hi Alex,
und wie erkennt Excel, ob es sich im XY-A, XY-B oder XY-Z handeln soll - also wo steht der Blattname? Ist das so zu verstehen, dass Excel das in der anderen Arbeitsmappe selbst herausfinden soll? Dann liste alle Tabellenblätter dort auf und beziehe dich auf das letzte in dieser Auflistung. Bedingung wäre dann natürlich, dass die Auflistung alphabetisch geordnet ist. Ist die Auflistung nicht alphabetisch, müsste man eine Hilfsspalte verwenden um das Tabellenblatt mit dem letztmöglichen Namen herauszufinden.
Übrigens: das gleichzeitige Posten derselben Frage in mehreren Foren ist in keinem Forum gern gesehen.


Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 13:31:43
Alex
Hallo Karin,
danke erstmal für den Hinweis, dann werde ich es im Folgenden auf eines der Foren beschränken.
Das muss Excel in der Tat leider selbst herausfinden, da es keine Garantie für die Sortierung gibt oder die Stelle, an der das relevante, höchstdotierte Tabellenblatt eingeordnet ist.
Wie prüfe ich die Existenz eines Tabellenblattes "XY-*"? Vielleicht etwas unelegant, aber könnte ich mit einer Fehlerroutine einfach von Sheet "XY-Z" startend versuchen einen Wert auszulesen und nur im Falle, dass dies zu keinem Fehler führt und der zu übertragende String nicht leer ist, würde die Schleife abbrechen.
Alternativ würde ich von "XY-Z" startend die Existenz des entsprechenden Balttes prüfen und bei Wahrheitsfindung per INDIREKT() den Inhalt aus der entsprechenden Zelle auslesen.
Danke, Grüße Alex

Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 15:09:33
Beverly
Hi Alex,
lege eine Hilfstabelle an, in der du dir die Inhalte der Zelle C10 aus allen Tabellenblättern -A bis -Z anzeigen lässt - falls Blatt nicht vorhanden, dann leere Zelle (im Beispiel B1:B26). Dann kannst du auf die Zelle mit dem letzten Eintrag Bezug nehmen (im Beispiel D2)



Tabelle1
 ABCD
1Mappe1A  
2 B C
3 C  
4    
5    
6    
7    
8    
9    
10    
11    
12    
13    
14    
15    
16    
17    
18    
19    
20    
21    
22    
23    
24    
25    
26    

verwendete Formeln
Zelle Formel Bereich R1C1 für Add In
D2=INDEX(B1:B9;VERGLEICH("";B1:B9;0)-1;1)  =INDEX(R[-1]C[-2]:R[7]C[-2],MATCH("",R[-1]C[-2]:R[7]C[-2],0)-1,1)
B1:B26=WENNFEHLER(INDIREKT("'["&A$1&".xlsx]XY-"&ZEICHEN(ZEILE(A65))&"'!C10");"")  =IFERROR(INDIRECT("'["&R1C[-1]&".xlsx]XY-"&CHAR(ROW(R[64]C[-1]))&"'!C10"),"")

http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://hajo-excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 14.05 einschl 64 Bit



Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 19:05:47
Alex
Ich komme leider absolut nicht mit der Steuerung in diesem Forum zurecht - leider.
Ich habe kein Profil scheinbar, wenn auch ein Passwort und oft ist nirgends ein Antwortbutton auffindbar - mache ich etwas falsch oder muss man sich hier doch ein wenig umgewöhnen, was die Bedienung angeht?
Zum Thema:
Danke für den Lösungsvorschlag, Karin.
Ich habe leider noch ein paar Probleme mit der Umsetzung:
Braucht man, um das höchstnotierte Tabellenblatt herauszufinden unbedingt mehrere Zellen?
Da es sehr viele Dateien gibt, für die die gleiche Prozedur auszuführen ist, wäre es zweckmäßig, wenn man ein Hilfstabellenblatt hätte für alle Quelldateien, ist das möglich?
Was genau bewirkt bei dir ZEICHEN(A65) bzw. was steht in A65?
Die Formel =INDEX(B1:B9;VERGLEICH("";B1:B9;0)-1;1) ergibt bei mir "#NV" (in B1 bis B26 habe ich testweise einige Buchstaben in absteigender Reihenfolge eingetragen, da die Funktion in den Zellen B1 bis B26 bei mir nicht funktionierte.)
Ich probiere weiterhin noch ein wenig mit deinem Vorschlag herum, hoffe ich habe ihn nicht falsch verstanden, aber bevor ich daran verzweifle, wollte ich einmal nachgefragt haben, ob ich diesen richtig verstanden habe.
Grüße Alex

Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 19:20:05
Alex
Hallo nochmal,
ich habe noch etwas vergessen.
In "C10" der Tabellenblätter "XY-*" der Quelldateien stehen verschiedenste Informationen, also nicht "A","B" o.ä.
Also, wenn ich es richtig verstehe, sorgt die Funktion in B1 z.B. dafür, den Wert aus C10 auszulesen, wenn das entsprechende Tabellenblatt vorhanden ist (in deinem Falle bei "XY-A" der Wert "A" ?).
Nach meinem Gefühl bräuchte ich ja entweder eine Abfrage ob ein Tabellenblatt existiert und dann den Namen von diesem bzw. nur dessen Endung "A", "B" etc.
Oder aber es wird per Funktion versucht, mit Hilfe einer Hilfstabelle mit Alphabet in einer Spalte, von Tabellenblatt "XY-A" bis "XY-Z" ein Wert aus C10 gelesen und bei Fehler wegen Nichtexistenz des nächsthöheren Tabellenblattes bricht die Abfrage ab.
Mit dem Anlegen eines Hilfsblattes habe ich keine Probleme, der Aufwand, wenn das Hilfsblatt jedoch je Dateinamen erzeugt werden müsste, wäre der zu groß:
Ich möchte eigentlich in diesem Falle die Werte nur einmalig übernehmen, die ändern sich voraussichtlich vorerst nicht.
Interessehalber: Wie würde man den Wert, den eine Funktion liefert dauerhaft als Konstante in eine Zelle bringen, sodass in der Zelle keine Funktion mehr steht, sondern nur noch das Ergebnis der Funktion, jedoch als Fixwert?

Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 19:29:04
Beverly
Hi Alex,
in der Formel steht nicht ZEICHEN(A65) sondern ZEICHEN((ZEILE(A65)) - das bedeutet, dass als Ergebnis A steht, da A das ZEICHEN(65) hat. Wird die Formel nach unten gezogen, steht dann dort ZEICHEN(ZEILE(A66)), weiter ZEICHEN(ZEILE(A67)) usw., was gleichbedeutend mit den Buchstaben B, C usw. ist. Mit anderen Worten ergibt XY-"&ZEICHEN(ZEILE(A65)) usw. dann deine Tabellenblattbezeichnungen XY-A, XY-B bis XY-Z. In den Zellen B1:B26 stehen als Ergebnis dann die Inhalte der Tabellenblätter XY-A, XY-B, XY-C usw. Bei mir sind das halt die Buchstaben A, B und C, die in den Tabellenblättern XY-A, XY-B und XY-C jeweils in Zelle C10 stehen - die restlichen Tabellenblätter gibt es nicht, weshalb die Zellen B4:B26 leer sind.
Meine Formel in D2 funktioniert nur, wenn die Buchstaben der Tabellenblätter fortlaufend sind, also zwischendurch keiner fehlt. Sollte das doch der Fall sein, musst du diese Formel verwenden:
=VERWEIS(2;1/ISTTEXT(B1:B1000);B:B)
Formelherkunft siehe hier: http://www.excelformeln.de/formeln.html?welcher=52


Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 19:41:16
Alex
Hallo Karin,
ach, danke Dir, da habe ich mich verlesen, jetzt klappt es auch mit dem Auslesen des Inhalts in B1 bis B26.
Wie fügt man eigentlich solche Ausschnitte aus Excel hier ein, können das nur Forumsnutzer mit Profil?
In B1 bis B26 stünden jetzt die Inhalte aus C10 der Tabellenblätter und D2 würde den letzten dieser Einträge nehmen, jetzt leuchtet es mir ein wenig mehr ein. (Das "A", "B", "C" im anderen Kontext verwendet hatte mich ein wenig verwirrt).
Mein Problem ist eigentlich, dass ich die im Hauptblatt der Zieldatei die Formel über viele Zeilen eingeben möchte und dann kommt jeweils das Ergebnis in die entsprechende Spalte.
Beim aktuellen weg müsste ich aber vorher wohl immer ein Hilfsblatt anlegen und dann die Formel, die in D2 des jeweiligen Hilfsblattes steht dort im Hauptblatt einsetzen, richtig?

Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 21:14:49
Beverly
Hi Alex,
vom Prinzip her hast du das richtig erkannt. Und Bedingung ist dabei natürlich, dass die andere(n) Arbeitsmappen(n) geöffnet sind.
Man könnte allerdings vielleicht eine "Hybridlösung" erstellen: die Hilfstabelle mit den Formeln sowie per VBA die Dateien nacheinander öffnen und das Ergebnis in die Haupttabelle fix übertragen. Verstehe ich das richtig, dass z.B. in Spalte A untereinander die Mappennamen stehen sollen und in Spalte B dazu jeweils das Ergebnis aus der Zelle C10?


Anzeige
AW: Dynamisch Inhalt aus Zelle anderer Datei
16.12.2013 21:52:32
Alex
Hallo Karin,
ganz so ist es nicht, aber sehr ähnlich:
in Spalte A stehen eindeutige Schlüsselwerte, die auch eindeutig die Dateinamen bestimmen.
In einer weiteren Spalte sollen dann passende Werte aus diesen Zieldateien (je Schlüsselwerte gibt es diese eine Zieldatei), in denen jeweils in Zelle C10 ein Wert steht, den ich übertragen möchte, jedoch leider halt nicht immer im gleichen Tabellenblatt (weder Name noch Position).
Das Problem komplett per Makro zu lösen, was hälst du davon?
Danke Dir.

AW: Dynamisch Inhalt aus Zelle anderer Datei
17.12.2013 07:13:43
Beverly
Hi Alex,
Zitat: "Das Problem komplett per Makro zu lösen, was hälst du davon?"
Davon halte ich nicht viel bzw. ganz und gar nichts, denn der von mir vorgeschlagene "Hybridweg" ist wesentlich unkomplizierter.


Tabellendarstellung in Foren
17.12.2013 07:34:14
Beverly
Hi Alex,
Zitat: "Wie fügt man eigentlich solche Ausschnitte aus Excel hier ein, können das nur Forumsnutzer mit Profil?"
Das kann jeder, der das Tabellendarstellungs-AddIn benutzt - Links zum Download stehen unter der Darstellung.


326 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige