Ribbon-Button (de-)aktivieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Label MsgBox
Bild

Betrifft: Ribbon-Button (de-)aktivieren
von: Born
Geschrieben am: 28.09.2015 11:44:45

Hallo Forum,
ich habe (auch dank der Hilfe hier im Forum) meine erste RibbonBar erzeugt. Ich möchte, dass ein Button dynamisch disabled/enabled wird. Nach Klick auf den Button1 soll dieser so lange deaktiviert sein, bis man den Button2 angeklickt hat. Erst dann soll Button1 wieder anklickbar sein. Geht sowas, und wenn ja, wie?
Vielen Dank im voraus,
M. Born

Bild

Betrifft: AW: Ribbon-Button (de-)aktivieren
von: mumpel
Geschrieben am: 28.09.2015 12:09:55
Hallo!
Kein Problem.
In "DieseArbeitsmappe":

Private Sub Workbook_Open()
 bolButton2 = True
 bolButton1 = False
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

In ein allgemeines Modul:
Option Explicit

Public objRibbon As IRibbonUI
Public bolButton1 As Boolean
Public bolButton2 As Boolean

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

Public Sub onAction_Button1(control As IRibbonControl)
 MsgBox "Button " & control.ID & " gedrückt"
 bolButton1 = True
 bolButton2 = False
 objRibbon.Invalidate
End Sub

Public Sub onAction_Button2(control As IRibbonControl)
 MsgBox "Button " & control.ID & " gedrückt"
 bolButton1 = False
 bolButton2 = True
 objRibbon.Invalidate
End Sub

Public Sub getEnabled_Button1(control As IRibbonControl, ByRef enabled)
If Not bolButton1 Then enabled = True
End Sub

Public Sub getEnabled_Button2(control As IRibbonControl, ByRef enabled)
If Not bolButton2 Then enabled = True
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

RibbonX-Code:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="onload">
  <ribbon>
    <tabs>
    <tab id="tab0" label="Test">
       <group id="grp0" label="test">
           <button id="btn0" label="Button1" size="large"
                   getEnabled = "getEnabled_Button1"
                   onAction="onAction_Button1" imageMso="_1" />
         <button id="btn1" label="Button2" size="large"
                   getEnabled = "getEnabled_Button2"
                   onAction="onAction_Button2" imageMso="_2" />
       </group>
    </tab>
    </tabs>
  </ribbon>
</customUI>

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß, René

Bild

Betrifft: AW: Ribbon-Button (de-)aktivieren
von: Born
Geschrieben am: 28.09.2015 12:59:32
Hallo René,
vielen Dank für die schnelle Antwort. In einer Beispielarbeitsmappe sah es schon gut aus und funktionierte. Ich werde das Ganze jetzt mit meiner Anwendung testen. Ich muss nur noch das Deaktivieren von Button2 einbauen, da Button2 immer aktiv sein soll.
Viele Grüße,
M. Born

Bild

Betrifft: AW: Ribbon-Button (de-)aktivieren
von: Born
Geschrieben am: 28.09.2015 13:20:42
Hallo René,
da ich den Code in einem COM-Addin verwende, habe ich dort keine Stelle "Diese Arbeitsmappe". Daher werden beim Start beide Buttons deaktiviert. Wie kann ich die beiden beim Laden auf Enabled setzen?
Vielen Dank nochmnals,
M. Born

Bild

Betrifft: Nicht der richtige Ort für COM-AddIns
von: mumpel
Geschrieben am: 28.09.2015 14:19:51
Mit COM-Add-Ins kenne ich mich nicht aus. Dafür ist das hier das falsche Forum.

Bild

Betrifft: AW: Nicht der richtige Ort für COM-AddIns
von: Born
Geschrieben am: 28.09.2015 14:27:30
Schade, aber trotzdem vielen Dank für Deine Hilfe. Vielleicht hat ja jemand anderes eine Idee...

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Ordner in Use durchsuchen und in Listfeld anzeigen"