ich weiß jetzt, wie man per VBA eigene Menüs (CommandBars) erstellen lässt und wie man die Standardexcelmenüs ausblendet.
Ich habe eine Arbeitsmappe mit vielen Tabellen, so ca. 30. Diese Tabellen sollen aber nicht über die Reiter(Blattregisterkarten) unten zugänglich gemacht werden. Diese Registerkarten verstecke ich sogar mit "ActiveWindow.DisplayWorkbookTabs = False" im Open-Ereignis des Workbooks. Zusätzlich verstecke ich die Standardmenüs von Excel im selben Ereignis. Mit einem selbstgestrickten Menü soll der Zugriff auf manche Tabellen ermöglicht werden, auf manche aber auch nicht. Jede Tabelle soll aber ein eigenes Menü haben.
Was ist nun besser? Noch am Anfang im Workbook_Open-Eregnis alle Menüs zu erstellen. Und dann jeweils mit dem Worksheets_Activate-Ereignis das Menü einzublenden. Oder sollen die Menüs erst im Worksheets_Activate-Ereignis erstellt werden.
Der Witz ist jedoch, dass jedes Menü speziell nur für ein Tabellenblatt bestimmt ist, es dürfen auch keine anderen dabei sein. Das bedeutet also, im Fall 1, muss beim verlassen bzw. beim aktivieren jedes Blattes das vorherige Menü unsichtbar gamacht werden. Im Fall 2 muss es ganz gelöscht werden, damit wenn man es wieder aktiviert auch wieder erstellen kann.
Aus persönlich Logik würde ich den Fall 1 vorziehen. Aber da Ihr nun doch mehr Erfahrung habt, könnt ihr mir vielleicht sagen, was schneller wäre und evtl. auch weniger Code in Anspruch nehmen würde.
Beim Beenden von Excel, in dem BeforeClose-Ereignis sollen natürlich alle eigenen Menüs gelöscht werden und die Standardmenüs von Excel sollen auch wieder in den Ursprungszustand gestellt werden.
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt. Vielen Dank schonmal für Eure Antwort.
Mit freundlichen Grüßen
Richard