Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1828to1832
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
Inhaltsverzeichnis

Ribbon Befehle abhängig deaktivieren

Ribbon Befehle abhängig deaktivieren
27.04.2021 17:27:41
ObiWanPaps
Hallo zusammen, bei https://www.herber.de/forum/cgi-bin/callthread.pl?index=1826305 wurde mir mit den gegebenen Hinweis sehr geholfen.
Ich habe mich auch bereits etwas in die RibbonX Technik eingearbeitet. Allerdings finde ich für mein Problem bisher nicht die passende Lösung, wenn es überhaupt eine gibt an der Stelle. Wie man Arbeitsblatt abhängig unterschiedliche (neue) Tabs einblenden kann, habe ich bereits gebaut. Auf 3 Blättern erscheinen jeweils unterschiedliche, eigene Tabs mit Gruppen und Befehlen.
Ich würde allerdings nun gerne statt der drei einzelnen, diese in einem eigenen Tab zusammenfassen wollen. Es soll dann aus mehreren Gruppen (aus den heutigen einzelnen Tabs) und Buttons bestehen, bei dem dann Arbeitsblattabhängig nur einzelne Gruppen/Button deaktiviert (nicht ausgeblendet) werden. Geht das überhaupt, dass ich in einem eigens kreierten neuen Tab einzelne Befehle arbeitsblattabhängig deaktiviere? Oder muss ich bei der "3-Tabs Variante" bleiben?
Kennt hier jemand eine Lösung bzw. hat eine Antwort auf die Frage "Geht das überhaupt?". Vielen Dank.

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

Betreff
Datum
Anwender
Anzeige
Nachtrag
27.04.2021 17:36:00
mumpel
Was in diesem Teil des Workshops steht geht natürlich auch mit einzelnen Elementen und Gruppen. Einfach mal ausprobieren.
AW: Nachtrag
28.04.2021 22:25:55
ObiWanPaps
Hallo mumpel, danke. Diesen Workshop habe ich auch schon gesehen und angefangen damit zu arbeiten. Ich habe auch eine Lösung für jedes Blatt einen eigenen Tab. Allerdings bin ich eher auf der Suche, ein Tab für alle Blätter und nur einzelne Gruppen deaktiviert (nicht ausgeblendet).
Ich habe dazu auch angefangen den Workshop https://www.rholtz-office.de/ribbonx/sichtbarkeit-der-elemente zu studieren.
Komme aber nicht weiter, da ich nicht in Abhängigkeit von Zellinhalten sondern in Abhängigkeit vom ausgewählten Blatt Gruppen deaktivieren möchte.
Da fehlt es mir aber an KnowHow.
Ich habe es so versucht:

Public Sub getEnabled_Button1(control As IRibbonControl, ByRef returnValue)
If ActiveSheet.Name = "Tabelle9" Then returnValue = True
End Sub
So funktioniert es aber nicht. Ich meine auch das ich alle notwendigen VBA Project Verweise ausgewählt habe. Da aber nicht mal das Beispiel bei mir scheint ja noch etwas zu fehlen. Hat jemand die notwendigen Verweise für RibbonX und wie muss der korrekte Befehl lauten, damit bei ausgewähltem Tabellenblatt "Tabelle9" die Schaltfläche Button1 aktiv ist und in den anderen Blätter deaktiviert ist.
Danke.
Anzeige
AW: Nachtrag
28.04.2021 22:27:19
ObiWanPaps
Komme so nicht weiter... ;-(
AW: Nachtrag
28.04.2021 23:04:24
mumpel
Wie bereits per Email gesagt, kümmere ich mich morgen drum (wenn ich ausgeschlafen habe, bin noch bis 01:15 Uhr auf Dienst).
AW: Nachtrag
29.04.2021 08:40:00
Stefan
Moin, ja. Danke!
AW: Nachtrag
29.04.2021 11:32:48
mumpel
XML-Code:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="onLoad_Tab9">
    <ribbon>
        <tabs>
            <tab id="tab0" label="Mein Tab">
                <group id="grp0" label="Meine Gruppe">
                    <button id="btn0" label="Button 1" imageMso="HappyFace"
                            size="large" onAction="onAction_Button1"
                            getEnabled="GetEnabled_Button1" />
                    <button id="btn1" label="Button 2"
                            imageMso="AutoDial" size="large" onAction="onAction_Button1" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

VBA/HTML-CodeConverter, AddIn für Excel 2002-2019 (32-bit) und Excel 365 (32-bit Desktop-Version)
In VBA geschrieben von Lukas Mosimann. Projektbetreuung: René Holtz


Code erstellt und getestet in Excel 365 32-bit Desktopversion
Codedarstellung mit VBAHTML 12.6.0 erstellt.

VBA-Codes:
In "DieseArbeitsmappe":
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  If Not objRibbon Is Nothing Then objRibbon.Invalidate
End Sub

VBA/HTML-CodeConverter, AddIn für Excel 2002-2019 (32-bit) und Excel 365 (32-bit Desktop-Version)
In VBA geschrieben von Lukas Mosimann. Projektbetreuung: René Holtz


Code erstellt und getestet in Excel 365 32-bit Desktopversion
Codedarstellung mit VBAHTML 12.6.0 erstellt.

In ein allgemeines Modul:
Option Private Module
Option Explicit

Public objRibbon As IRibbonUI

Public Sub onLoad_Tab9(ribbon As IRibbonUI)
  Set objRibbon = ribbon
End Sub

Public Sub getEnabled_Button1(control As IRibbonControl, ByRef returnedValue)
 If ActiveSheet.Name = "Tabelle9" Then returnedValue = 1
End Sub
Public Sub onAction_Button1(control As IRibbonControl)
 MsgBox "Button " & control.ID & " gedrückt", 64, "Hinweis"
End Sub

VBA/HTML-CodeConverter, AddIn für Excel 2002-2019 (32-bit) und Excel 365 (32-bit Desktop-Version)
In VBA geschrieben von Lukas Mosimann. Projektbetreuung: René Holtz


Code erstellt und getestet in Excel 365 32-bit Desktopversion
Codedarstellung mit VBAHTML 12.6.0 erstellt.


Anzeige
AW: Nachtrag
29.04.2021 16:13:44
Stefan
Hallo mumpel, das hat jetzt super geklappt! Vielen Dank dafür. Es tut was es tun soll! Grüße

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige