Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
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

INDIREKT nicht praktikabel, andere Lösung ?

INDIREKT nicht praktikabel, andere Lösung ?
05.11.2014 16:13:31
Markus
Heute morgen wurde mir bereits geholfen.
Problem ist Folgendes ...
ich möchte in einer Mappe2 auf eine Zelle aus einer Tabelle"XX" aus Mappe1 verweisen.
Die Tabelle"XX" ist aber unter Umständen nicht vorhanden.
Bei normalem Verweis erscheint dann ja immer #Bezug
um das zu vermeiden, möchte ich vorher prüfen ob es diese Tabelle"XX" gibt.
Der Name der Tabelle"XX" würde in einer Zelle z.B. A4("Ba")in der aktuellen Tabelle der Mappe2 stehen.
Aufgabe also. Prüfe (in Mappe2) ob es eine Tabelle(mit Namen der in A4 steht) in Mappe1 gibt, wenn ja gibt Wahr aus, wenn nein gibt Nein aus.
INDIREKT Lösung sieht so aus
=WENNFEHLER(INDIREKT("[Sep.xlsm]" & A4&"!$BE$52");0)
Nun sieht man schon am Tabellennamen, es geht um Monate. Wenn ich das durchziehe, habe ich zum Schluss 12 Arbeitsmappen offen, die alle aufeinander angewiesen sind. Das ist nicht wirklich parktikabel.
Kann ich diese Funktion auch in VBA realisieren ?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nur mit MappenÖffnung (im Hintergrd)! Gruß owT
05.11.2014 16:24:31
Luc:-?
:-?

AW: Nur mit MappenÖffnung (im Hintergrd)! Gruß owT
05.11.2014 16:35:47
Markus
Ja das habe ich ja geschrieben, dass die INDIREKT Funktion geht, aber eben nur mit offener Mappe, das ist mein Problem ... im Hintergrunde öffnen ist auch blöd, wäre aber nich eine Überlegung wert.
Kann ich nicht anders (VBA) prüfen, ob es Tabelle mit dem Namen der in A1 steht existiert und den Wert dann übernehmen, oder wenn es diese Tabelle in der anderen Mappe nicht gibt, das ganze auf 0 setzen.

Meine AW bezog sich auf VBA, wobei 'im HG' ...
05.11.2014 18:20:09
Luc:-?
…heißt, dass die Mappen unsichtbar im Hintergrund geöffnet wdn (müssen), Markus,
im VBEditor kann man sie aber sehen. Sie müssen dann also auch wieder geschlossen wdn. Mit einem normalen xlFernBezug sieht man im VBE nichts.
INDIREKT kann auch dann erfolgreich benutzt wdn, wenn im VBE unter Extras - Verweise Verweise auf die QuellDateien gesetzt wdn. Diese Verweise wdn aber nur dann vom VBE akzeptiert, wenn diese Mappen eindeutige eigene VBA-Projekt-Namen haben und nicht standardmäßig alle VBAProject heißen! Diese Bezeichnung muss im VBE entsprd geändert wdn.
Da diese Verweise dann für Xl generell gelten, sollten sie bei Öffnen der Mappe, die sie benötigt, in der EreignisProzedur Workbook_Open gesetzt und bei ihrem Schließen (Workbook_BeforeClose) wieder entfernt wdn. Man sollte das aber auch über ein Xl/Vb-AddIn, das diese Verweise permanent enthält, realisieren können, so dass nur auf dieses verwiesen wdn muss.
INDIREKT fktioniert dann deshalb, weil die Dateien, auf die verwiesen wird, unsichtbar im Hintergrund geöffnet wurden, wie ein Blick auf den Verzeichnisbaum des VBE belegt.
Gruß, Luc :-?

Anzeige
AW: Meine AW bezog sich auf VBA, wobei 'im HG' ...
06.11.2014 14:35:11
Markus
ich verstehe zwar so grundsätzlich was das alles bedeutet, da ich aber nicht die extrem große Erfahrung mit Programmierung habe, befürchte ich, dass ich keine Ahnung habe, wie ich das realisieren soll.
Im Moment habe ich eine Lösung, dass ich mit (Workbook_Open) die entsprechende Datei öffnen und mit
Application.ShowWindowsInTaskbar = False
die Dateien quasi im Hintergrund öffne ... zumindest werden die einzelnen Fenster nicht in der Taskleiste angezeigt.
mit (Workbook_BeforeClose) und

Application.ShowWindowsInTaskbar = True
beendet ich das ganze dann wieder beim Schließen.
Die Mappen haben alle einen eindeutigen VBA-Projekt-Namen ...
Problem daran ist, dass beim Schließen einer Mappe, die anderen im Hintergrund nicht geschlossen werden. Ich habe versucht, das ebenfalls in (Workbook_BeforeClose) zu realisieren, aber entweder schließt er nicht alle hintereinander, sondern immer nur eine, oder Excel schmiert mir ab.
Am liebsten wäre mir halt eine Lösung, in der ich Prüfe, ob in einer Mappe eine bestimmte Tabelle vorhanden ist, wenn ja sollen die Daten übernommen/kopiert werden, wenn nein soll der Wert auf Null gesetzt werden. Aber das scheint dann noch schwieriger ...

Anzeige
AW: Meine AW bezog sich auf VBA, wobei 'im HG' ...
06.11.2014 14:36:27
Markus
Sorry für Doppelpost, aber ich hatte wieder das Häkchen vergessen
ich verstehe zwar so grundsätzlich was das alles bedeutet, da ich aber nicht die extrem große Erfahrung mit Programmierung habe, befürchte ich, dass ich keine Ahnung habe, wie ich das realisieren soll.
Im Moment habe ich eine Lösung, dass ich mit (Workbook_Open) die entsprechende Datei öffnen und mit
Application.ShowWindowsInTaskbar = False
die Dateien quasi im Hintergrund öffne ... zumindest werden die einzelnen Fenster nicht in der Taskleiste angezeigt.
mit (Workbook_BeforeClose) und

Application.ShowWindowsInTaskbar = True
beendet ich das ganze dann wieder beim Schließen.
Die Mappen haben alle einen eindeutigen VBA-Projekt-Namen ...
Problem daran ist, dass beim Schließen einer Mappe, die anderen im Hintergrund nicht geschlossen werden. Ich habe versucht, das ebenfalls in (Workbook_BeforeClose) zu realisieren, aber entweder schließt er nicht alle hintereinander, sondern immer nur eine, oder Excel schmiert mir ab.
Am liebsten wäre mir halt eine Lösung, in der ich Prüfe, ob in einer Mappe eine bestimmte Tabelle vorhanden ist, wenn ja sollen die Daten übernommen/kopiert werden, wenn nein soll der Wert auf Null gesetzt werden. Aber das scheint dann noch schwieriger ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige