Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Menue.Delete (böse Falle) Handle ??

Menue.Delete (böse Falle) Handle ??
01.06.2004 13:48:06
Kersten
Hallo
Ich habe folgendes Problem.
Ich habe mir ein eigenes Menue gebaut. Nach Beendigung der Arbeitsmappe wird dieses Menue wieder geschlossen.
Wenn ich nun zwei Arbeitsmappen von der selben Sorte geöffnet habe und schließe eine davon, wird das Menue auch geschlossen. Ich brauche es aber noch für die andere (noch geöffnete) Arbeitsmappe. Ich benötige nun ein übergordnetes Handle welches überwacht wie viele Mappen haben das Menue angefordert und wie viele sind geschlossen worden. Denn nur die letzte Arbeitsmappe, die geschlossen wird darf dieses Menue schließen.
Wie geht das???? Wie kann das vorzeitige Schließen verhindert werden.
Vielleicht hat jemand dieses Problem schon mal gehabt und gelöst.
Danke ;-)

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Menue.Delete (böse Falle) Handle ??
01.06.2004 13:49:52
Ulf
Das geht dann nur über ein Klassenmodul z.B. in einem Add-in oder deiner
Personl.xls.
Kennst du dich mit Klassenmodulen aus?
Ulf
AW: Menue.Delete (böse Falle) Handle ??
01.06.2004 13:58:17
Kersten
Leider nicht so gut. Weiß nicht ganz genau wozu diese Klassen-Module dienen. Habe bis her immer nur mit den normalen Module hantiert.
Was du mit Personl.xls meinst weiß ich auch nicht so ganz.
Die Lösung muß auf jeden Fall portabel sein, da die Datei später mal als Vorlage eingesetzt und von Jedermann genutzt wird. :-|
NOCH OFFEN
01.06.2004 14:15:00
Ulf
Bin bei deinem Level VBA gut davon ausgegangen, dass du dich einigermaßen auskennst.
Das alles zu erklären ist mir aus Zeitgründen nicht möglich, daher noch offen.
Ulf
Anzeige
AW: NOCH OFFEN
01.06.2004 14:51:17
Kersten
Meine VBA-Kenntnisse sind in so weit vorhanden, das ich vorgegebene Codes zum größten Teil verstehen und für meine Zwecke abändern und erweitern kann. Von Null an neu erfinden tue ich mich noch schwer.
Es wäre also schon eine große Hife wenn ich eine Beispielarbeitsmappe mit entsprechenden Codes hätte. Leider bieten die Beispielarbeitsmappen von der Beispiel-CD keine Hilfe, weil auch dort das Problem nicht abgefangen wird.
AW: NOCH OFFEN
01.06.2004 14:59:31
andre
Hallo Kersten,
Ulf hat öfter wenig Zeit ;-)
Wenn Du eine Menü löschen willst kannst Du vorher prüfen, ob noch andere arbeitsmappen allgemein oder auch eine spezielle noch offen ist.
In etwa so:

Sub test()
For Each Mappen In Workbooks()
If Mappen.Name = "Willi.xls" Then Exit Sub
Next
' hier kommt meineMenues.Delete
End Sub

Anzeige
AW: NOCH OFFEN
01.06.2004 15:14:11
Kersten
mpf.....
Folgendes Beispiel:
A1.xls ; A2.xls , A3.xls werden geöffnet und alle drei brauchen das selbe Menue.
egal.xls wird auch geöffnet, hat aber mit dem Menue nichts zu tun. Ist also eine
x-beliebige Mappe.
!! Die Name der Arbeitsmappen sind auch willkürlich und nicht festgelegt.
Jetzt schließe ich A1 bis A3.
egal.xls bleibt noch geöffnet.
Wer schließt jetzt das Menue? egal.xls kann das Menue nicht schließen. Kennt es ja gar. nicht.

???????????????????? 8-(
AW: NOCH OFFEN
01.06.2004 15:31:41
andre
...wenn Du keinen festen Anhaltspunkt hast, wann Du das Makro brauchst und wann nicht, dann mach es, wie Ulf geschrieben hat in der personl.xls. Da ist es dann immer da.
Wenn es immer um Dateien A1, A2 und A3 geht, kannst Du abfragen, ob die da sind. Setz natürlich voraus, dass das Makro in A1, A2 und A3 drin ist.
In diesem Fall ist die Variante mit dem WorkbookActivate - Ereignis und der personl.xls noch besser. Da fragst Du ab, ob der Name A1, A2 oder A3 ist und tust dann das Menü aktivieren und wenn nicht, tust Du es deaktivieren.
Anzeige
AW: NOCH OFFEN
01.06.2004 16:01:33
Kersten
Es gibt glaube ich ein kleiner Verständnisproblem.
Die Datei an der ich rumbastel ist eine Vorlagedatei für Kaklulationen. Sie wird also aufgerufen und unter einem anderen Namen abgespeichert. Die Tochterdateien heißen also alle anders. Sie vererben zwar alle die selben Eigenschaften und Menuebedürfnisse, haben aber alle willkürliche Namen. Welche dateien soll ich also abfragen ???
Es müßte eine übergeordnete Stelle geben, wo sich diese Tochterdateien beim Ööffnen anmelden und beim Schließen abmelden. Über einen Zähler wird dann entschieden ob das Menue geschlossen werden kann oder nicht. Nur wie müßte so eine übergeordnete Stelle aussehen? Und das ganze muß auf jeden x-beliebigen Rechner funktionieren.
Da alle Dateien dieses Menue mit sich führen hatte ich schon überlegt, ein Button in die Datei zu machen, über den man dann dieses Menue wieder öffnen kann wenn es geschlossen wird. Diese Lösung ist aber recht unelegant. Ich dacht es gibt vielleicht eine intelligentere Lösung. ;-))
Anzeige
AW: NOCH OFFEN
01.06.2004 16:30:00
andre
Hallo Kersten,
wenn die Dateien bestimmte gleiche Eigenschaften haben dann frage doch die ab bei workbook_activate ... Und wenn gar keine Datei mehr da ist dann nimmst Du das Menü auch weg. Da brauchst Du auch keinen Zähler. Das Menü kannst Du auch in eine x-beliebige Datei packen, die tust Du auf den Rechnern nur in das Verzeichnis "XLStart" von Excel.
Grüße, Andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige