Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
304to308
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
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aufruf in neuer Instanz

Aufruf in neuer Instanz
08.09.2003 21:21:35
Björn
Huhu zusammen,

weiß jemand, wie man eine Excel-Datei in einer neuen Excel-Instanz öffnen kann?Geht das überhaupt mit VBA oder stößt man da einmal mehr an die Grenzen? Läßt es sich über API realisieren?

In diesem Forum wurde die Frage laut Suchrobot schon einige Male gestellt - nur leider nie beantwortet. Um nicht Anlaß für weitere hitzige Debatten über den mutmaßlichen Sinn oder Unsinn einer solchen Vorgehsnweise zu geben, wie das die Vorposter getan hatten, hier kurze Erläuterung des Hintergrundes meiner Frage:

Mit dem Aufruf meiner Datei wird mit der gerade aktiven Instanz einiges angestellt - unter anderem wird application auf visible = false gesetzt. Ds ist nicht weiter schlimm oder gar böse :-), weil an die Stelle der Application eine Userform tritt. Mit dem Schließen der Userform wird die appication wieder auf visible zurückgesetzt und beendet.

Unglücklich ist es aber, wenn mit dem Aufruf des Programmes auch eventuell bereits geöffnete xl-´workbooks aus der perspektive des Anwenders im Nirvana verschwinden. Daher muß ich die xl-datei (genauer eigentlich eine xla-Datei) in neuer Instanz öffnen. Kann man das irgendwie darstellen?

Vielen Dank im voraus für Euere Hilfe!

Liebe Grüße

Björn

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

Betreff
Datum
Anwender
Anzeige
AW: Aufruf in neuer Instanz
08.09.2003 22:18:59
GerdW
Du kannst eine neue Excelinstanz erzeugen:
Dim NewExcel As New Excel.Application

Mit dieser Instanz kannst du dann dein xla aufrufen. Ich bezweifele allerdings,
dass das der richtige Weg ist, zumal ein *.xla ohnehin nicht sichtbar ist.

Gerd
AW: Aufruf in neuer Instanz
08.09.2003 23:05:03
Björn
Huhu Gerd,

wie soll das mit Dim NewExcel As New Excel.Application gehen? Der Punkt ist ja, daß die Datei bei einem Dopppelklick oder dem normalen Öffnen als neue Instanz geöffnet werden soll. Der Code müßte also wohl in

Private Sub Workbook_Open() ... End Sub
eingefügt werden. Ich habe gerade gar keine Idee, wie das Ganze gehen könnte :-(. Ob der Ansatz an sich der falsche weg ist? Ich weiß nicht. Um den Hintergrund noch weiter zu erläutern: Ich hatte weiter unten danach gefragt, wie man per API eine Userform floaten lassen kann (immer im Vordergrund befindlich). Das geht wohl in xl2000 / XP relativ problemlos mit winsetpos. Aber eben nicht mit xl 97. Als quick and dirty solution ist mir nur eingefallen, die aktuelle xl.application selbst mit dem Aufruf on Top zu setzen. In diesem Fall wird auch die Userform on Top angezeigt. Allerdings verschwinden natürlich auch alle anderen Fenster hinter dem Excel-application-Rahmen - mag die aktive Datei nun eine xla-datei sein oder ein normales wks. Um dieses Problem zu lösen, kann man einfach application.visible = false setzen. Das ergebnis ist eine frei im Vordergund schwebende UserForm in xl97. So weit, so gut. Nur verschwinden mit application.visible = false auch alle anderen ev. bereits geöffneten xl-Workbooks. Und das ist nicht so gut. Vielelicht hast Du noch eine Idee, oder könntest Deinen obigen Vorschlag etwas weiter erläutern. Das wäre sehr nett. In jedem Fall, Danke.

Viele Grüße

Björn
Anzeige
AW: Aufruf in neuer Instanz
08.09.2003 23:34:55
GerdW
Bei Doppelklick im Explorer z.B. sehe ich keine Möglichkeit.
Ansonsten beschränk einfach die Möglichkeit, ein neues workbook zu
öffnen, auf einen von dir definierten Button. Damit kannst du sicherstellen,
dass das in einer neuen Instanz passiert.

Wobei ich noch immer nicht erkennen kann, wozu das Ganze eigentlich
nötig ist.

Gerd
AW: Aufruf in neuer Instanz
09.09.2003 21:14:00
Björn
Hi Gerd,

Das wird leider so vermutlich nicht gehen. Zwar soll die Datei über ein Intranet - also gerade nicht "direkt" über den explorer - geöffnet werden, was an sich nahelegen würde bereits den Aufruf über den HTML-Link per VBScript (aktiviert) so zu gestalten, daß die Datei in einer neuen Instanz geöffnet wird. Leider geht das aber aufgrund von technischen Besonderheiten in diesem Intranet nicht (Dateien werden nur über eine Node-ID vom Typ Long referenziert, nicht über den Dateinamen. )
Wozu das ganze gut sein soll, hatte ich gehofft. erklärt zu haben. Möglicherweise denke ich auch um fünf Ecken und es gibt eine wesentlich einfachere Lösung. Jeder Vorschlag wäre in diesem Fall hochwillkommen. Wie bereits erklärt, geht es eigentlich nur darum eine Userform statisch im Vordergrund vor allen anderen Anwendungen zu halten, so daß die xl-UF vor einer bestimmten Großrechner-Anwendung floatet. Und das Ganze eben mit xl 97. Mein Workaround, excel selbst in den Vordergrund zu laden, die instanz unsichtbar zu machen und dann die userform zu laden, funktioniert. Aber eben nur mit dem Nebeneffekt, daß etwaige andere geladene Workbooks auch im Hintergrund verschwinden. Und das ist leider eher weniger vertretbar :-(. Nochmals vielen Dank für jede weiteren Tipp.

Viele Grüße

Björn, der inzwischen bald alle Foren und Tutorials zu dieser Frage abgegrast hat :-(
Anzeige
AW: Aufruf in neuer Instanz
09.09.2003 22:12:07
GerdW
Hi Björn,

beginne zu verstehen. Allerdings glaube ich nicht, dass ich dir da
weiterhelfen kann.

Gerd

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige