Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel 2010 Menüband Aufruf von Registerkarten

Frage Entwicklung VB for Applications

Mitglied: anchle

anchle (Level 1) - Jetzt verbinden

07.05.2014, aktualisiert 22:30 Uhr, 4328 Aufrufe, 5 Kommentare

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?
Mitglied: colinardo
LÖSUNG 08.05.2014, aktualisiert 06.06.2014
Hallo anchle,
das lässt sich mit einem customUI XML-File für das Excel-File machen. Etwas ähnliches hatten wir hier schon mal: http://www.administrator.de/forum/excel-vba-makro-nur-unter-bestimmten- ...

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
01.
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="RibbonOnLoad"> 
02.
    <ribbon> 
03.
        <tabs> 
04.
            <tab id="myTab1" label="myTab1"> 
05.
                <group id="grpTab1" label="Group1"> 
06.
                    <button id="btnTest1" imageMso="ImportExcel" label="TestButton" size="large" onAction="btnTest1_Click" /> 
07.
                </group> 
08.
            </tab> 
09.
 		<tab id="myTab2" label="myTab2"> 
10.
                <group id="grpTab2" label="Group1"> 
11.
                    <button id="btnTest2" imageMso="ImportExcel" label="TestButton" size="large" onAction="btnTest2_Click" /> 
12.
                </group> 
13.
            </tab> 
14.
		<tab id="myTab3" label="myTab3"> 
15.
                <group id="grpTab3" label="Group1"> 
16.
                    <button id="btnTest3" imageMso="ImportExcel" label="TestButton" size="large" onAction="btnTest3_Click" /> 
17.
                </group> 
18.
            </tab> 
19.
        </tabs> 
20.
    </ribbon> 
21.
</customUI>
2. Modul-Code
01.
'Öffentliche Variable für den Zugriff auf das Ribbon 
02.
Public rib As IRibbonUI 
03.
 
04.
'Callback das ausgeführt wenn das Workbook geladen wird 
05.
Public Sub RibbonOnLoad(ByVal ribbon As IRibbonUI) 
06.
    Set rib = ribbon 
07.
End Sub 
08.
 
09.
'Callback für Button auf Tab 1 
10.
Public Sub btnTest1_Click(ByVal control As IRibbonControl) 
11.
    MsgBox "Das ist die callback procedure für Button 1" 
12.
End Sub 
13.
 
14.
'Callback für Button auf Tab 2 
15.
Public Sub btnTest2_Click(ByVal control As IRibbonControl) 
16.
    MsgBox "Das ist die callback procedure für Button 2" 
17.
End Sub 
18.
 
19.
'Callback für Button auf Tab 3 
20.
Public Sub btnTest3_Click(ByVal control As IRibbonControl) 
21.
    MsgBox "Das ist die callback procedure für Button 3" 
22.
End Sub
3. Worksheet-Code um das Sheet zu wechseln
01.
Private Sub Worksheet_Activate() 
02.
    rib.ActivateTab "myTab1" 
03.
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
Bitte warten ..
Mitglied: anchle
05.06.2014 um 23:06 Uhr
Hallo, recht herzlichen Dank für Deine Mühe. Ich habe schon ein Menüband erstellt. Allerdings gefäät es mir noch nicht 100%-ig, weil noch zu unübersichtlich. Ich habe noch eine Frage; 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.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 06.06.2014, aktualisiert um 11:00 Uhr
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:
01.
Public Sub RibbonOnLoad(ByVal ribbon As IRibbonUI) 
02.
    Set rib = ribbon 
03.
    rib.ActivateTab "myTab1" 
04.
End Sub 
Grüße Uwe
Bitte warten ..
Mitglied: anchle
06.06.2014 um 11:02 Uhr
Danke Danke Danke,

ich habe gestern 3 Stunden gesessen und es nicht geschafft und im Prinzip fehlte mir genau eine Zeile an der richtigen Stelle.

Viele Grüße und schöne Pfingsten

Helmut
Bitte warten ..
Mitglied: colinardo
06.06.2014 um 11:06 Uhr
Keine Ursache
Viele Grüße und schöne Pfingsten
Gleichfalls

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel 2010 - Berechnungen mit Datumswerten Uhrzeiten (2)

Frage von Volchy zum Thema Microsoft Office ...

Microsoft Office
gelöst Provision ausrechnen Excel 2010 (14)

Frage von Mascha.MG zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 mit VBA sortieren ? (4)

Frage von dressa zum Thema Microsoft Office ...

Microsoft Office
gelöst Excel 2010 Makro Ausgabe in bestimmter Tabelle ausgeben (6)

Frage von dressa zum Thema Microsoft Office ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (26)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (18)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...