Excel 2010 Menüband Aufruf von Registerkarten
Ich habe im Menüband von Excel 4 eigene Registerkarten erschaffen. Nun möchte ich gerne diese nicht nur anklicken müssen, um den Inhalt zu sehen, sondern ein Makro schreiben, dass beim Aktivieren eines bestimmten Tabellenblattes auch zusätzlich diese Registerkarte aktiviert. Klingt zwar ganz praktisch, aber alle bisher gefundenen Lösungen führten leider zu Fehlermeldungen. Wer kann helfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 237432
Url: https://administrator.de/forum/excel-2010-menueband-aufruf-von-registerkarten-237432.html
Ausgedruckt am: 29.05.2025 um 06:05 Uhr
5 Kommentare
Neuester Kommentar
Hallo anchle,
das lässt sich mit einem customUI XML-File für das Excel-File machen. Etwas ähnliches hatten wir hier schon mal:
Ich habe dir mal ein Demo-Sheet mit 3 Tabs erstellt welche jeweils beim Wechseln der Tabellen aktiviert werden. Das Dokument verwendet wie unter obigem Link geschrieben ein CustomXML-File für die Erstellung der zusätzlichen Tabs und der Buttons, damit sie vom Code aus angesprochen werden können. Dies müsstest du für deine selbst erstellen Tabs nachholen. Für das einfache Bearbeiten des XML-Files im Workbook kannst du den CustomUI Editor verwenden, oder dir in Visual Studio das Ribbon visuell zusammenbauen und als XML-Code exportieren.
Der Code des Beispiel-Sheets besteht aus folgenden Bestandteilen:
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
das lässt sich mit einem customUI XML-File für das Excel-File machen. Etwas ähnliches hatten wir hier schon mal:
Ich habe dir mal ein Demo-Sheet mit 3 Tabs erstellt welche jeweils beim Wechseln der Tabellen aktiviert werden. Das Dokument verwendet wie unter obigem Link geschrieben ein CustomXML-File für die Erstellung der zusätzlichen Tabs und der Buttons, damit sie vom Code aus angesprochen werden können. Dies müsstest du für deine selbst erstellen Tabs nachholen. Für das einfache Bearbeiten des XML-Files im Workbook kannst du den CustomUI Editor verwenden, oder dir in Visual Studio das Ribbon visuell zusammenbauen und als XML-Code exportieren.
Der Code des Beispiel-Sheets besteht aus folgenden Bestandteilen:
1. customXML des Beispiels
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="RibbonOnLoad">
<ribbon>
<tabs>
<tab id="myTab1" label="myTab1">
<group id="grpTab1" label="Group1">
<button id="btnTest1" imageMso="ImportExcel" label="TestButton" size="large" onAction="btnTest1_Click" />
</group>
</tab>
<tab id="myTab2" label="myTab2">
<group id="grpTab2" label="Group1">
<button id="btnTest2" imageMso="ImportExcel" label="TestButton" size="large" onAction="btnTest2_Click" />
</group>
</tab>
<tab id="myTab3" label="myTab3">
<group id="grpTab3" label="Group1">
<button id="btnTest3" imageMso="ImportExcel" label="TestButton" size="large" onAction="btnTest3_Click" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
2. Modul-Code
'Öffentliche Variable für den Zugriff auf das Ribbon
Public rib As IRibbonUI
'Callback das ausgeführt wenn das Workbook geladen wird
Public Sub RibbonOnLoad(ByVal ribbon As IRibbonUI)
Set rib = ribbon
End Sub
'Callback für Button auf Tab 1
Public Sub btnTest1_Click(ByVal control As IRibbonControl)
MsgBox "Das ist die callback procedure für Button 1"
End Sub
'Callback für Button auf Tab 2
Public Sub btnTest2_Click(ByVal control As IRibbonControl)
MsgBox "Das ist die callback procedure für Button 2"
End Sub
'Callback für Button auf Tab 3
Public Sub btnTest3_Click(ByVal control As IRibbonControl)
MsgBox "Das ist die callback procedure für Button 3"
End Sub
3. Worksheet-Code um das Sheet zu wechseln
Private Sub Worksheet_Activate()
rib.ActivateTab "myTab1"
End Sub
Grüße Uwe
Falls der Beitrag gefällt, seid so nett und unterstützt mich durch eine kleine Spende / If you like my contribution please support me and donate
Zitat von @anchle:
Wie kann ich es erreichen, dass auch beim
Start der Datei gleich eine bestimmte Registerkarte geöffnet wird. Bisher klappt es auch bei Deiner Musterdatei erst beim
Wechsel. Vielen Dank.
Hierfür sollte diese Änderung ausreichen:Wie kann ich es erreichen, dass auch beim
Start der Datei gleich eine bestimmte Registerkarte geöffnet wird. Bisher klappt es auch bei Deiner Musterdatei erst beim
Wechsel. Vielen Dank.
Public Sub RibbonOnLoad(ByVal ribbon As IRibbonUI)
Set rib = ribbon
rib.ActivateTab "myTab1"
End Sub