Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
192to196
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
192to196
192to196
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

INDIREKT oder ähnlich

INDIREKT oder ähnlich
14.12.2002 03:02:12
Markus John
Hallo XL Freaks :)
INDIREKT ist ja eine geniale Variante, wenn ich in einer Tabelle auf andere Dateien zugreifen will, indem ich den Dateinamen in der aktuellen Tabelle in eine Zelle schreibe. Leider funktioniert das Ganze nur, wenn die betreffende Datei geöffnet ist. Geht das auch irgendwie ohne die Datei zu öffnen? Simples Beispiel: In der Datei Jahr.xls gibt es zwölf Spalten Jan - Dez in die ich in Zeile 1Jan02, Feb02, ... schreibe. Nun steht in Spalte A Einnahmen, Ausgaben, ..
Automatisch soll aus der Datei, die den Namen aus Zelle ... (z.B. C1) steht der SVERWEIS eingetragen werden. Wie gesagt, dass Prinzip über INDIREKT ist mir klar, leider müsste dazu jede betreffende Datei geöffnet werden. Bei meinem Aufmass, um welches ich mich gerade kümmere, sind das bis jetzt 325 Dateien, ein Ende ist nicht abzusehen.
Any Hints?
Danke Markus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: INDIREKT oder ähnlich
14.12.2002 07:25:03
Berai
Hallo Markus,

du hast das schon richtig erkannt, INDIREKT() funktioniert definitiv nur, wenn beide Dateien geöffnet sind.
Als Alternative sehe ich hier nur ein Makro, wobei ich dir allerdings nicht helfen kann.

Gruß
Rainer

Re: INDIREKT oder ähnlich
14.12.2002 10:24:30
Hans W. Hofmann
Hier mal enen Ansatz. Ggf. zum weitermachen:


Gruß HW

Re: INDIREKT oder ähnlich
14.12.2002 10:54:38
Ramses
Hallo Hans,

hier ein Mittel gegen deine "unmotivierte" Excel-Instanz :-)

Gruss Rainer

Re: INDIREKT oder ähnlich
14.12.2002 13:07:21
Hans W. Hofmann
Hallo Rainer,

so wie ich das gestellte Problem verstanden habe, soll ohne sichtbares Öffnen einer XL-Datei auf letztgenannte zugegriffen werden. So gesehen ist das Öffnen einer neuen XL-Instanz Absicht. Nur so kann die Funktion als Tabellenfunktion überhaupt eingesetzt werden....
Nur, wenn nach dem Öffnen, nach .Open bis zum .Quit was daneben geht, kann die (unsichtbare) Instanz hängen bleiben.
Ich seh da in Deinem Coding kein Beitrag zum Handling des Problems.
BTW:
Wenn der Code unter Excel laufen soll würd ich die Versionsbezüge entfernen:
Set myExcel = GetObject(, "Excel.Application")
Da Excel ja nun mal läuft bekommen wir dann in jedem Fall erstmal einen Pointer und eine extra Instanz wird nie geöffnet.
Soll aber, so war die Absicht...


Gruß HW

Anzeige
Jetzt bin ich etws irritiert...
14.12.2002 17:35:09
Ramses
Hallo Hans,

mit CreateObject wird doch auf jeden Fall eine neue zusätzliche Instanz geöffnet. Das machst du in deinem Code ja auch.

Nur in meiner Variante greife ich auf die aktuell laufende Instanz zu, was meines Erachtens doch etwas Arbeitsspeicher spart.
Die Anzeige in der Taskleiste ist ja nicht gleichbedeutend mit einer neuen Instanz sondern wird standardmässig als eigenes Fenster geöffnet.
Zu testen wenn du in den optionalen Einstellungen "Fenster in Taskleiste" deaktivierst.

Wenn man es konsequent zu Ende denkt, dann ist in deinem Code die Objecterstellung gar nicht nötig, weil EXCEL ja schon läuft und das Workbooks.Open so oder so ausgeführt wird,... oder ?

Der Code läuft übrigens in EXCEL trotz der Versionsabfrage gut. Ich stelle damit lediglich sicher, dass die richte Version geöffnet wird wenn mehrere Versionen installiert sind.

Gruss Rainer

Anzeige
Jetzt bin ich etws irritiert...
14.12.2002 17:35:09
Ramses
Hallo Hans,

mit CreateObject wird doch auf jeden Fall eine neue zusätzliche Instanz geöffnet. Das machst du in deinem Code ja auch.

Nur in meiner Variante greife ich auf die aktuell laufende Instanz zu, was meines Erachtens doch etwas Arbeitsspeicher spart.
Die Anzeige in der Taskleiste ist ja nicht gleichbedeutend mit einer neuen Instanz sondern wird standardmässig als eigenes Fenster geöffnet.
Zu testen wenn du in den optionalen Einstellungen "Fenster in Taskleiste" deaktivierst.

Wenn man es konsequent zu Ende denkt, dann ist in deinem Code die Objecterstellung gar nicht nötig, weil EXCEL ja schon läuft und das Workbooks.Open so oder so ausgeführt wird,... oder ?

Der Code läuft übrigens in EXCEL trotz der Versionsabfrage gut. Ich stelle damit lediglich sicher, dass die richte Version geöffnet wird wenn mehrere Versionen installiert sind.

Gruss Rainer

Anzeige
Re: Jetzt bin ich etws irritiert...
14.12.2002 18:56:47
Hans W. Hofmann
Lieber Rainer, das versteht man nur, wenn man's mal durchprogrammiert hat ;-). Ich, die Funktion, brauche eine eigene Instanz! Sonst nix gut, OK? Mut Du ausprobieren...

Bezüglich CreateObject d'accord.
Du fängst aber mit GetObject an und erwischst auf jeden Fall die laufende Instanz.

Wenn Du dies im meine Function Datalink einbaust, kannst Du die Funktion nicht mehr als Tabellenfunktion einsetzen, weil sich das aktive Workbook und das bezogene Workbook nicht über den gleichen Speicherbereich in ihrer XL-Instanz einigen können. Außerdem wird die sich öffnende Datei sichtbar (glaub ich jetzt mal - oder kann ich das verhindern?). Dann kann ich auch gleich INDIREKT einsetzen und mir den ganzen Aufwand sparen....

Datalink (z.B. als Arrayfunktion direkt im Tabellenblatt) öffnet also eine eigene (unsichtbare) XL-Instanz und überträgt den in Frage kommenden Datenbereich in die Tabelle. Dort können die Daten ganz normal weiterverarbeitet werden und es genügt bei gleichstrukturierten Dateien nur den Dateinamen auszutauschen und man hat die Daten bereit :-)....

A1|=D:\Lehrunterlagen\Schule\PM\Regelkreis01.xls
A2|=Eingriffsgrenzen
A3|=a5:C20

A5:C20|{=datalink(A1;A2;A3)}

Wenn Du diese Funktionalität innerhalb der gleichen XL-Instanz hinbekommst, würde es mich interessieren wie und mit welcher Version. Habe hier XL2000.


Gruß HW



Anzeige
Sorry,... ich habe nicht realisiert...
14.12.2002 23:32:27
Ramses
Hallo Hans,

...dass du deinen Vorschlag als Funktion erstellt hat.
Mein Teil kommt aus einem Makro.

Gruss Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige