Office: Ribbon-Leiste über VBA umschalten

Helfe beim Thema Ribbon-Leiste über VBA umschalten in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe folgendes Problem. Ich möchte gerne die Ribbon-Leiste programmgesteuert umschalten. Und zwar die in einem neu geöffneten... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von csi3bel, 7. August 2018.

  1. Ribbon-Leiste über VBA umschalten


    Hallo zusammen,

    ich habe folgendes Problem.
    Ich möchte gerne die Ribbon-Leiste programmgesteuert umschalten. Und zwar die in einem neu geöffneten Fenster. (Excel 2013)

    Die grundsätzliche Umschaltung funktioniert wunderbar nach Anleitung aus dem bekannten Ribbon Workshop. (Danke an dieser Stelle an den Autor)
    Wenn ich jetzt aber aus der Hauptanwendung ein neues Fenster öffne, wird der Befehl zur Umschaltung des Ribbons nicht mehr ausgeführt. (Wahrscheinlich auch logisch)

    Gibt es überhaupt eine Möglichkeit den Befehl 'SwitchTab' auf verschiedene Fenster in Excel anzuwenden?
    Das Programm wird als AddIn ausgeführt. Die Datei, die im neuen Fenster aufgerufen wird, enthält keinen Code und ist immer eine neue oder neu geladene Datei.

    Gruß
    Christoph

    :)
     
    csi3bel, 7. August 2018
    #1
  2. Hallo Christoph,

    spontane Überlegung meinerseits dazu wäre in dein Add-In einen Event-Handler (Klassenmodul) einzubauen, der dann die Workbook_Activate oder Workbook_Deactivate Ereignisse deiner Hauptanwendung auffängt. Dann könntest du an der Stelle den gewünschten Code für einen Tab Wechsel etc. einfügen.

    Ich hab allerdings noch nicht genau verstanden, was genau du wann umschalten möchtest, daher ist das ein Schuss ins Dunkle.

    Besten Gruß
    Timm
     
    Groetzki, 8. August 2018
    #2
  3. Hallo und danke erstmal für die schnelle Antwort,

    Wie erkläre ich das am besten...
    Wir haben hier bei uns ein (steinaltes, Excel 2003) Makro über das wir unter anderem Angebote schreiben.
    Vereinfacht gesagt, wird zunächst das Hauptmodul geladen, in dem sich die Angebotsnummern befinden und in dem neue Angebotsnummern angelegt werden können.
    Über dieses Hauptmodul werden dann die eigentlichen Angebote erstellt oder bereits bestehende geladen.
    Da ich auch in den Angebotsdateien auf VBA-Code zurückgreifen muss, habe ich mich für ein AddIn entschieden.
    Wenn ich eines dieser Angebot öffne, sollte ein bestimmter Tab des Ribbons angewählt werden. (Ich kann das natürlich auch von Hand machen, es wäre aber schön, wenn es hier einen Automatismus gäbe)

    Ich weiß es gibt zig Programme, die zur Angebotserstellung dienen, und das evtl besser (oder auch schlechter) können. Das besagte Makro ist aber im laufe der Zeit auf mehrere Hundert Seiten Code angewachsen und ist perfekt in unseren Arbeitsablauf integriert.
     
    csi3bel, 8. August 2018
    #3
  4. Ribbon-Leiste über VBA umschalten

    Das sollte mit dem besagten Vorschlag durchaus möglich sein.
    Auch wenn es womöglich etwas mit Kanonen auf Spatzen geschossen ist, den Aufwand zu betreiben, um einen einfachen Klick (oder Tastenkombination) zu ersetzen.

    Du scheinst dich ja ein wenig auszukennen. Kannst du mit dem, was ich beschrieben habe, etwas anfangen?

    *** Handelt es sich denn um ein Custom Ribbon, das aktiviert werden soll? Oder eins von den Standard Ribbons?

    Besten Gruß
     
    Groetzki, 8. August 2018
    #4
  5. Tja, ich bin weit davon entfernt, einer von euch Profis zu sein.
    Aber ich beiße mich da meist einfach durch. Google und die ganzen Foren helfen ja auch sehr gut, wenn man nicht selber weiterkommt.

    Aber ja, ich denke ich werde deinen Vorschlag mal versuchen umzusetzen.
    Das sollte eigentlich klappen.
    ... und ich weiß, eigentlich mit Kanonen auf Spatzen... aber ich finde es schön, wenn man einfach die Möglichkeiten ausnutzt.

    Achso, ja es ist ein Custom Ribbon, zusätzlich zum Standard.

    Vielen Dank erstmal
    Christoph
     
    csi3bel, 9. August 2018
    #5
  6. Hast du zugriff auf die XML die dem Custom tab zugrunde liegt? Du wirst die ID des Tabs benötigen.

    Alternativ kannst du dem Custom Tab in der XML auch ein keytip-Attribut verpassen. Dann ließe sich der Tab auch über alt+keytip (z.B. alt+abc) ansteuern.

    Ist die Hauptanwendung selbst auch eine Makrodatei (nicht .xlsx) oder liegt der Code einzig im AddIn?

    Besten Gruß
    Timm
     
    Groetzki, 9. August 2018
    #6
  7. Der Code liegt momentan einzig im AddIn.
    Ob ich das noch splitten muss oder sollte, muss ich auch noch schauen.
    Ich bin da ehrlich gesagt auch noch in der Findungsphase und probiere einige Funktionen erstmal aus.
    DIe XML ist selbst erstellt mit dem Custom UI Editor For Microsoft Office.
    Daher habe ich auch Zugriff drauf und kenne die IDs.

    Die Ansteuerung der Tabs funktioniert ja auch grundsäzulich, solange ich kein neues Fenster öffne.
    Was ich jetzt schon gesehen habe: Ist das neue Fenster/die neue Datei bereits geöffnet und ich wiederhole den Befehl zur Auswahl des Tabs geht das auch.
    Nur halt nicht, wenn die Datei gerade geöffnet wird. Ich muss den Befehl wiederholen.
     
    csi3bel, 9. August 2018
    #7
  8. Ribbon-Leiste über VBA umschalten

    Also ich habe das vorhin schon mal ausprobiert und es funktioniert folgendermaßen:

    In der XML erweiterst du die customUI um ein onLoad-Attribut

    PHP:
             <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"onLoad="LoadRibbon" >
     
    Groetzki, 9. August 2018
    #8
  9. Leider nein.
    Ich hab es gerade mal ausprobiert.
    Der Code in dem Klassenmodul wird aber auch gar nicht ausgeführt beim Deaktivieren der Arbeitsmappe.

    Hmm, hab ich da was übersehen?

    Gruß
    Christoph
     
    csi3bel, 9. August 2018
    #9
  10. Hajo_Zi
    Hajo_Zi Erfahrener User
    Hallo Christoph,

    ich habe keine Lösung, aber:

    nur wenige schauen auf Deinen Rechner und sehen die Datei.
    Ich möchte gerne den Fehler im Original sehen.

    Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

    Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.

    Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
    Ribbon-Leiste über VBA umschalten logo_hajo3.gif
     
    Hajo_Zi, 9. August 2018
    #10
  11. Dann kommen wir um eine Datei nun tatsächlich nicht herum. Ansonsten wird es schwer nachzuvollziehen wo es hakt.

    Glaub mir, sofern alles richtig deklariert ist, funktioniert es. Die Zahl der möglichen Fehlerquellen ist aber zu groß, als dass ich es von hier erraten könnte.
     
    Groetzki, 9. August 2018
    #11
  12. Hallo!

    Im Code von Timm fehlt noch der Startcode. Das Event muss beim Laden des Add-Ins noch initilisiert werden. Ich werde morgen mal schauen wo ich den Beispielcode habe.

    Gruß, René
     
  13. Ribbon-Leiste über VBA umschalten

    Oha *upps *entsetzt
    mein Fehler... ich nehme alles zurück.
    Ich habe das Ganze in meinem vorhandenen EventHandler in meinem Stadard AddIn getestet. Da wickle ich auch ein bisschen was anderes drüber ab. Ich hab vorhin extra noch geguckt aber die Initialisierung nirgendwo gefunden.
    Jetzt wo René das sagt, fällt es mir wie Schuppen aus den Haaren.
    Ich hatte, glaub ich, die Initialisierung im Workbook_Open Event des AddIns, bin mir aber grade überhaupt nicht sicher. Hier könnte das vielleicht auch in dem ohnehin angestoßenen LoadRibbon Sub ablaufen.

    Wenn René nicht bis dahin den richtigen CodeSchnipsel raus gesucht hat, kann ich das morgen früh nachgucken.

    Etwas beschämte Grüße
    *tongue.gif*
     
    Groetzki, 9. August 2018
    #13
  14. Kein Ding, ich bin doch froh das mir geholfen wird.

    Das Programm ist sehr umfangreich. Ich müsste auch noch mit meinem Chef sprechen, ob das für Ihn in Ordnung ist, das ich das Programm hochlade.
    (Ich will euch da gewiss nichts unterstellen! Aber ich sollte mich absichern, weil es nicht mein privates Programm ist)
    Ansonsten bau ich mal eine 'abgespeckte' Variante nach und lad die hoch.

    Gruß
    Christoph
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    csi3bel, 9. August 2018
    #14
  15. Guten Morgen,

    wie vermutet lag bei mir die Initialisierung des EventHandlers im Workbook_Open Event. Der Einfachheit halber hab ich das jetzt mal mit in die LoadRibbon Prozedur gebaut.

    Code:
    Füge mal die beiden roten Zeilen in den Code hinzu. Dann ist der EventHandler auch initialisiert und, sofern dann keine anderen Fehler vorliegen, funktioniert es *Smilie hoffentlich...
     
    Groetzki, 9. August 2018
    #15
Thema:

Ribbon-Leiste über VBA umschalten

Die Seite wird geladen...
  1. Ribbon-Leiste über VBA umschalten - Similar Threads - Ribbon Leiste VBA

  2. Ribbon haben sich vor vba-Eingabe gelöst

    in Microsoft Excel Hilfe
    Ribbon haben sich vor vba-Eingabe gelöst: Hallo, ich habe das Problem, dass sich die Ribbonleiste im vba-Editor losgelöst hat. Siehe Foto. Hat jemand ne Ahnung wie ich den Orginalzustand wieder hinbekomme? Habe es schon mit deinstallieren...
  3. Ribbon Schaltfläche aktivieren bzw. deaktivieren

    in Microsoft Excel Hilfe
    Ribbon Schaltfläche aktivieren bzw. deaktivieren: Ich habe eine eigene Menüleiste (Ribbon) erstellt (Schulverwaltung) und es gelingt mir nicht dass ich mit VBA einzelne Schaltflächen deaktiviere bzw. aktiviere. Je nach Tabellenblatt soll die...
  4. Ribbon Gruppen Dynamisch erstellen

    in Microsoft Excel Hilfe
    Ribbon Gruppen Dynamisch erstellen: Hallo zusammen, ich habe schon jede Menge gelesen und ausprobiert, aber leider komme ich noch nicht auf die Lösung die ich mir für mein Problem vorstelle. Ich Versuche ein Ribbon Tab zu...
  5. Benutzerdefiniertes RibbonX und XLAM

    in Microsoft Excel Hilfe
    Benutzerdefiniertes RibbonX und XLAM: Hallo Zusammen, ich habe mir vor einiger Zeit mit Hilfe aus dem Internet ein benutzerdefiniertes RibbonX im customui.xml in der Personal.xlsb erstellt. Das RibbonX erscheint, und ich kann die...
  6. Eigenes Ribbon anpassen -> XML

    in Microsoft PowerPoint Hilfe
    Eigenes Ribbon anpassen -> XML: Hallo zusammen, ich habe ein Ribbon welches ich viel nutze bin aber etwas unzufrieden mit der automatischen Skalierung der Knöpfe. Ich würde es daher gerne fest definieren und habe gelesen,...
  7. Ribbon im Formular bei Unterformularen

    in Microsoft Access Hilfe
    Ribbon im Formular bei Unterformularen: Ich habe ein Formular mit einem eigenen Ribbon. Dieses Formular hat ein Unterformular (ohne Ribbon, weil die dort nicht funktionieren). Immer wenn ich aus dem Formular in das Unterformular...
  8. Excel Ribbon manuell erstellen (XML erstellen und wo einbinden)

    in Microsoft Excel Hilfe
    Excel Ribbon manuell erstellen (XML erstellen und wo einbinden): Hallo zusammen, vor ungefähr 5 Jahren habe ich mal ein eigens Ribbon erstellt und wenn mich meine Erinnerungen nicht trügen habe ich das XML File für die Ribbon Darstellung selbst erstellt und...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden