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

neue symbolleiste nur am erstellten ort nutzen?

neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 16:47:25
Manfred
hi leute
war heute vormittag schon mit der frage drin,hab auch hilfe erhalten,problem aber noch nicht gelöst.
einfaches beispiel:neue mappe "A" mit neu erstellter symbolleiste "test" darauf ein schaltflächenelement mit makro.
beim öffnen der mappe soll "test" gezeigt werden bei schließen wieder verschwinden,klappt auch mit den befehlen: enabled(true,false).
problem jetzt, wenn ich die mappe verschiebe (anderer ordner,desktop).Betätige ich dann die schaltfläche erfolgt fehlermeldung:"eine datei/mappe mit dem namen "A" ist bereits geöffnet,usw" mit "delete" verschwindet zwar leiste, wie bekomme ich sie aber wieder bei neuem öffnen wieder rauf.
gruß an alle Manfred

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

Betreff
Datum
Anwender
Anzeige
Re: neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 17:02:13
Axel
Hallo Manfred,

das mit dem .Enabled = False ist keine so gute Idee.

Symbolleisten, die in einer Mappe definiert sind, sollten beim Beenden der Mappe explizit im Ereignis Workbook_Close() gelöscht werden. Dabei werden die Leisten nicht in der Mappe sondern lediglich in der aktuellen Excel-Sitzung gelöscht.

Wenn dies nicht durchgeführt wird, bleibt die Symbolleiste in Excel nach Beenden der Mappe erhalten und Excel speichert diese Symbolleiste dann beim Beenden der Sitzung in der entsprechenden .xlb-Datei.

Nach Neustart von Excel ist die Symbolleiste dann wieder vorhanden, wenn auch nicht sichtbar.

Dies kann dann zu Problemen führen, wenn die Symbolleiste eingeblendet wird und die Buttons betätigt werden und die Mappe mit den zugehörigen Makros nicht mehr (dort) exisitiert.

Symbolleisten sollten grundsätzlich in Workbook_Open() erzeugt oder eingeblendet und in Workbook_Close() gelöscht werden.

Gruß
Axel

Anzeige
Re: neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 17:04:06
Anton
Hallo,

nach deiner deine Schilderung siehst du eine, deren Schaltfläche eine Prozedur in einer ganz bestimmten, derzeit nicht offenen Mappe aufruft. Die Mappe würde nun automatisch geöffnet werden, wenn nicht eine Mappe gleichen Namens bereits offen wäre.

Binde die Symbolleiste an deine Mappe und füge Code in die BeforeClose-Prozedur dieser Mappe, der die Symbolleiste explizit löscht.

Die Alternative wäre, die Symbolleiste beim Öffnen der Mappe mittels Code jedesmal neu zu erzeugen und beim Schließen wieder zu löschen. Das wäre der sauberste Weg.


Anton

Re: neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 17:27:55
Helmut
Hallo Manfred,
Hans hat ein AddIn (vbCmdBar.xla), mit dem Du auf einfachste Weise Symbolleisten, Menüs, Schaltflächen einer und nur dieser Arbeitsmappe zuordnen kannst. Läßt keine Wünsche offen!

Gruß Helmut

Anzeige
Re: neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 18:10:27
Manfred
erstmal vielen dank für eure hilfe
hatte es auch gemacht :workbook_beforeclose appl.commandbars("test").delete
workbook_open appl..commandbars.add("test")
symbolleiste erschien aber ohne schaltfläche,oder hab ich damit nur wieder eine neue symbolleiste mit dem namen test erzeugt?
Re: neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 18:16:47
Axel
So ist es.

Mit Add hast Du lediglich wieder eine neue Symbolleiste angelegt.

Da das aber wohl fehlerfrei funktionierte, war auch keine mit gleichem Namen vorhanden.

Du solltest eine vorhandene Symbolleiste zunächst an die Datei einmalig binden (Ansicht -> Symbolleisten -> Anpassen -> "Symbolleiste selektieren" -> Anfügen -> Kopieren).

Schau Dir dazu auch meine Posting im Thread einen tiefer an.

Gruß
Axel

Anzeige
Re: neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 19:10:20
Manfred
prinzip leuchtet mir ein, habs jetzt auch mit anbinden gemacht,
aber beim öffnen LZFehler 5
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("test2").Delete
End Sub

Private Sub Workbook_Open()
Application.CommandBars.Add ("test2")
End Sub
wo ist der bock?

Re: neue symbolleiste nur am erstellten ort nutzen?
21.08.2002 20:54:16
Axel
Wenn Du die Symbolleiste angebunden hast, ist sie ja bereits vorhanden.

In der Workbook_Open()-Prozedur ist dann sicherheitshalber lediglich die visible-Eigenschaft der Symbolleiste auf True zu setzen

Application.CommandBars("test2").Visible = true

Die Add-Methode muß fehlschlagen (so wie bei Dir), da es ja bereits eine Leiste mit dem Namen "test2" gibt.

Gruß
Axel

Anzeige
Re: neue symbolleiste nur am erstellten ort nutzen?
22.08.2002 11:09:44
Manfred
BINGO!!
danke für die mühe
manfred

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige