Active X Steuerelement umgehen
#11
Moin!
Excel 365:
Einfügen, Kontrollkästchen.
Bildet Wahr oder Falsch ab.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#12
Aber wie verknüpfe ich die beiden Zustände mit der Programmierung, die abhängig vom Zustand unterschiedliche Aktionen ausführt?

Genau das ist ja der Grund, weshalb ich ActiveX Steuerelemente benutzt habe. Weil die regulären Elemente das - nach meinem Wissen - nicht können.
Antworten Top
#13
noch mal zu Ribbon. Da kann man auch die gewünschten ToggleButtons einbauen.
Code aus Beispieldatei  #7 erweitert um einen Togglebutton.
Ribbon:
PHP-Code:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="RXonLoad">
    <
ribbon startFromScratch="false">
        <
tabs>
            <
tab id="Tab1" label="Mein Menü" insertBeforeMso="TabHome">
                <
group id="Group1" label="Buttons">
                    <
button id="Button1" label="Speichern" imageMso="FileSave" size="large" onAction="Button1_onAction" />
                    <
button id="Button2" label="Drucken" imageMso="FilePrint" size="large" onAction="Button2_onAction" />
                    <toggleButton id="MToggleButton1" imageMso="OutlineDemoteToBodyText" label="Ausführen" size="normal" onAction="ToggleButton1_OnAction"/> 
                </
group>
            </
tab>
        </
tabs>
    </
ribbon>
</
customUI

in ein allgemeines Modul:
Code:
Option Explicit
    Public objRibbon As IRibbonUI

Rem Callback for customUI.onLoad
Public Sub RXonLoad(ribbon As IRibbonUI)
    Set objRibbon = ribbon
End Sub

Rem Callback for Button1 onAction
Sub Button1_onAction(control As IRibbonControl)
    ' hier dein Prozeduraufruf
    MsgBox "Du hast den Button ""Speichern"" gedrückt"
End Sub

Rem Callback for Button2 onAction
Sub Button2_onAction(control As IRibbonControl)
    ' hier dein Prozeduraufruf
    MsgBox "Du hast den Button ""Drucken"" gedrückt"
End Sub

Rem Callback for MToggleButton1 onAction
Sub ToggleButton1_OnAction(control As IRibbonControl, pressed As Boolean)
    If pressed = True Then
        ' hier dein Prozeduraufruf für ToggleButton aktivieren
        MsgBox "Ja"
    Else
        ' hier dein Prozeduraufruf für ToggleButton deaktivieren
        MsgBox "Nein"
    End If
End Sub
Ich verstehe nicht, was daran umständlich ist.

Gruß Uwe
Antworten Top
#14
Hallöchen,

hier mal ein Ansatz für die Auswertung eines Formularsteuerelementes:


...Shapes("Check Box 1").DrawingObject.Value
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
Bin unterwegs und kann es daher nicht testen.
Das von mir beschriebene Einfügen Kontrollkästchen ist ein Zeichen und müsste daher beim  "toggeln" ein Change-Event auslösen. 
Später mehr.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#16
Endlich zu Hause und kurz getestet.
Wie erwartet, kann man die Änderung mit einem Change-Event auswerten.
Dazu kommt der unfassbar geringe Speicherbedarf dieses neuen "Kontrollkästchens", denn schließlich ist es ein Zeichen aka Byte …
Die Vorgeschichte der Einführung wurde hier diskutiert.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#17
Ich werde daraus immer noch nicht schlau. 

Ich habe mal eine Beispieldatei gebastelt. 

Diese Funktionalität brauche ich wieder - aber ohne das Active-X Steuerelement. 


.xlsm   Test.xlsm (Größe: 20,24 KB / Downloads: 5)


Es ist auch okay, wenn man zukünftig zwei Buttons hat. Aber ich muss zwischen Aktiv / Inaktiv unterscheiden können.
Antworten Top
#18
Zitat:Aber wie verknüpfe ich die beiden Zustände mit der Programmierung, die abhängig vom Zustand unterschiedliche Aktionen ausführt?

Mal ein Beispiel dafür, wie Du mit einfachsten Mitteln und ohne ActiveX, bei Bedarf so viel unterschiedliche (nicht nur 2 oder 3, sondern wenn Du magst 100te) Zustände definieren und auswerten kannst. Das heißt, wenn Du willst, könntest Du für einen ganzen Programmablauf nur noch diesen einzigen Button verwenden, der, je nach Fortschrittsstufe entsprechend reagiert... 
Nachteil: so ca. ab 100 Zuständen wäre ein Plan empfehlenswert... 19
.xlsm   Togglebutton mal anders.xlsm (Größe: 17,64 KB / Downloads: 10)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • StrammerMax
Antworten Top
#19
Hallo,

anbei den ToggleButton ins Ribbon eingebaut.

.xlsm   Test(1).xlsm (Größe: 18,51 KB / Downloads: 5)

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • StrammerMax
Antworten Top
#20
Vielen Dank euch Beiden :)

Sieht beides vielversprechend aus. 
Ich werde am Wochenende mal ein bisschen basteln.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste