Office: Event-Handler für Command Button in Tabellenblatt

Helfe beim Thema Event-Handler für Command Button in Tabellenblatt in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Liebe community, bestimmt kann mir jemand bei folgendem Problem weiterhelfen: Ich möchte dynamisch einen ActiveX-Button einem Tabellenblatt zufügen.... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Stefan5, 28. November 2018.

  1. Event-Handler für Command Button in Tabellenblatt


    Liebe community, bestimmt kann mir jemand bei folgendem Problem weiterhelfen:

    Ich möchte dynamisch einen ActiveX-Button einem Tabellenblatt zufügen.
    Dazu habe ich versucht den Code zum Einfügen von Buttons in UserForms (dort bekomme ich das hin - hierzu gibt es auch viele Beispiele im Netz) entsprechend anzupassen:

    Ich habe folgendes Klassenmodul "clsCommandButton" erstellt:


    Code:
    Das Testmodul zum Einfügen des Buttons sieht folgendermaßen aus:

    Code:
    Problem: Es wird ein (wirkungsloser) Button eingefügt und es erscheint die Fehlermeldung "type mismatch".

    Was muss ich ändern?

    :)
     
  2. Hallo,

    ergänz mal:
    Code:
    ah und ich seh grad Deine Klassenvariable mußt Du am besten statisch und global setzen, damit das Objekt der virtuellen Klasse erhalten bleibt, bei mehreren Objekten nutzt man dann ein Array, oder eine Collection...

    Code:
    Gruß, Muller2
     
  3. ...das geht auch einfacher:
    Beispiel:
    Code:
    Wobei Muller2's Einwand bezgl. mehrerer Objekte bestehen bleibt.

    PS: Wobei natürlich die Frage steht, weshalb man einen Button via VBA erstellen muss?
    Auch halte ich es für sinnvoller, statt unzähliger Buttons immer den gleichen verwendet und ihn in Abhängigkeit zur verwendeten Zelle setzt...

    Bsp.:
    Einen Button auf dem Tabellenblatt platzieren und folgenden Code in das Modul der Tabelle:
    Code:
     
  4. Event-Handler für Command Button in Tabellenblatt

    Hallo Muller2, hallo RJ,

    tausend Dank für eure Tipps!*biggrin.gif*

    Dank der Ergänzung ".Object" klappt das jetzt! *Smilie
    Allerdings wundere ich mich, wieso das Sub

    Code:
    das im Klassenmodul steht, nicht ausgeführt wird. Ich muss stattdessen den Code der Tabelle zuweisen:

    Code:
    Wenn ich mit dem "controls"-Objekt und userforms arbeite, klappt es hingegen, wenn das aufzurufende sub im Klassenmodul steht.

    @RJ:
    Leider kommen Shapes, die mit der onaction-Eigenschaft subs aufrufen, für mich nicht in Frage, da sie sich sehr eigenartig verhalten, wenn sie bestimmte "animierte" Aktionen starten sollen, ähnlich z.B. der folgenden Prozedur:

    Code:
    Insbesondere wenn das EXCEL-Tool per Fingertouch bedient wird, findet dann die Animation quasi "im Hintergrund" statt und man bekommt nach einiger Zeit nur das Endergebnis zu sehen.
    ActiveX-Buttons kennen dieses Problem zwar zunächst nicht, aber leider "nützen sie sich ab" (ich weiß, das klingt sehr verrückt, ist aber leider so):
    Sie erzeugen manchmal ungefragt einen "Zwillingsbutton", der versetzt auf dem ursprünglichen erscheint, meist eine deutlich andere Größe + Schriftgröße aufweist und manchmal funktionieren sie irgendwann auch gar nicht mehr. Dieses Problem tritt vor allem dann häufig auf, wenn das Gerät, auf dem das Excel-tool läuft, regelmäßig mit Beamern klarkommen muss, die unterschiedliche Auflösungen haben.
    Um diesen Excel-bug zu umschiffen, weiß ich mir keinen anderen Rat, als den Button beim Aktivieren des betreffenden Tabellenblatts neu zu erschaffen und ihn beim Verlassen wieder zu löschen.
     
  5. Hallo Stefan,

    zur Ausführung des Klassenevents cmdCommandButton_Click:

    ja das ist ne böse Falle*upps , hatt auch nicht mehr auf dem Schirm, bei Hinzufügen von ActiveX-Controls zu TabBlättern ( auch per Code...!) wechselt Excel in den Entwurfsmodus, was zur Folge hat, daß alle virtuellen Klassen 'zerstört' und deren öffentlichen Klassenvariablen auf 'Nothing' gesetzt werden, man muß beide Vorgänge mit einem Timer entkoppeln:
    Zum Zwillingsbutton-Problem: Mit einem Beamer kenn ich mich da nicht aus, aber das Problem tritt häufiger bei exotischeren ActiveX-Controls auf TabBlättern auf, da hilft meistens nur noch, die Controls in ein ActiveX-Frame zu packen, allerdings kommst Du dann an die Events der Controls wiederum nur über die AutomatisierungsKlasse(-nprogrammierung)...*cool.gif*

    Gruß, Muller2
     
    Muller2, 1. Dezember 2018
    #5
  6. Hallo,

    ich habe leider keine Ahnung, was du da genau vor hast, aber ... schon mal daran gedacht, eventuell ein CommandBar zu verwenden ?
    Vielleicht auch ein selbsterstelltes, neues Kontext-Menu ... wie beim Rechtsklick in die Zelle ?
     
    Flotter Feger, 1. Dezember 2018
    #6
  7. Hallo Muller2,

    danke für deinen Nachtrag!
    Ich habe deinen Code in mein Tool übernommen. Auch wenn ich nicht wirklich verstehe, was du da trickst, es funktioniert!*cool.gif*

    Gruß
    Stefan
     
    Stefan5, 2. Dezember 2018
    #7
Thema:

Event-Handler für Command Button in Tabellenblatt

Die Seite wird geladen...
  1. Event-Handler für Command Button in Tabellenblatt - Similar Threads - Event Handler Command

  2. Arbeiten Sie im Team an Handzetteln für Promotion-Events

    in Microsoft Teams Tutorials
    Arbeiten Sie im Team an Handzetteln für Promotion-Events: Arbeiten Sie im Team an Handzetteln für Promotion-Events Microsoft Teams Mehr... Weniger E-Mails eignen sich gut für...
  3. Einladen von Teilnehmern zu einem Live-Event einer Teams

    in Microsoft Teams Tutorials
    Einladen von Teilnehmern zu einem Live-Event einer Teams: Einladen von Teilnehmern zu einem Live-Event einer Teams Microsoft Teams Mehr... Weniger Als...
  4. Tipps zur Barrierefreiheit für inklusive Microsoft Teams-Besprechungen und Live-Events

    in Microsoft Teams Tutorials
    Tipps zur Barrierefreiheit für inklusive Microsoft Teams-Besprechungen und Live-Events: Tipps zur Barrierefreiheit für inklusive Microsoft Teams-Besprechungen und Live-Events Microsoft Teams Mehr... Weniger...
  5. Stummschalten bei MS Live Events

    in Microsoft Teams Hilfe
    Stummschalten bei MS Live Events: Liebe Community, wir haben morgen ein Live-Event für Mitarbeiter unserer Firma geplant. Beim letzten Mal hatte ich als Produzent auf den Button "Alle Stummschalten" gedrückt und trotzdem kam es...
  6. Live Event in MS Teams

    in Microsoft Teams Hilfe
    Live Event in MS Teams: Hallo, ich habe ein Problem mit den Live-Events in MS Teams und verzweifel gerade.... Ich bekomm die Auswahl "Live Event" nicht im Kalender angezeigt. [ATTACH] Was habe ich bis jetzt...
  7. Live Event Option erscheint nicht

    in Microsoft Teams Hilfe
    Live Event Option erscheint nicht: Hi! ich bekomme es einfach nicht hin, dass ich die Option für das LiveEvent in der Teams App bekomme. Die Anleitungen habe ich befolgt und auch Tage gewartet dennoch bekomme ich die Option...
  8. Live Event Teams: Speaker & Slides anzeigen

    in Microsoft Teams Hilfe
    Live Event Teams: Speaker & Slides anzeigen: Hallo, ich möchte bei Live Events in MS Teams gleichzeitig die Kamera des Speakers und die Präsentation anzeigen. Aktuell kann ich nur auswählen, entweder Kamera oder Präsentation. Gibt es da...