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, 4005 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 ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel 2010 Zellen mit bestimmten Inhalt mit Makro formartierten (5)

Frage von packmann2016 zum Thema Microsoft Office ...

Microsoft Office
Excel 2010 - Microsoft Excel kann die Daten nicht kopieren (4)

Frage von EDV-Oellerking zum Thema Microsoft Office ...

Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...