Office: Ribbon Textfeld ansprechen

Helfe beim Thema Ribbon Textfeld ansprechen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Gemeinde ich hätte mal ein Anliegen. Rene bringt in seinem Tutorial das Beispiel bei dem über eine Telefonnummereingabe in der Multi-Leiste ein... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von jack_D, 16. Februar 2014.

  1. Ribbon Textfeld ansprechen


    Hallo Gemeinde

    ich hätte mal ein Anliegen.
    Rene bringt in seinem Tutorial das Beispiel bei dem über eine Telefonnummereingabe in der Multi-Leiste ein Anruf gestartet wird.

    Kann man dieses Eingabefeld mittels VBA triggern.
    Also sprich einen Wert über VBA eintragen?

    Danke für eure Unterstützung

    Grüße

    :)
     
  2. Hallo!

    Mit dem Attribut "getText"


    Gruß, René
     
  3. Möchtest Du zur Laufzeit etwas eintragen, zum Beispiel aus einem anderen Makro heraus, musst Du das mit Invalidate erledigen. Zum Beispiel über das Worksheet_Change-Ereignis.

     
  4. Ribbon Textfeld ansprechen

    Hallo Rene

    vielen Dank für deine Antwort.

    Dein Beispiel funktioniert auch super.
    Nur das mit der Laufzeit krieg ich nicht auf den Tacho

    Code:
    Die Sub Test bringt in demn Fall einen Fehler das das Objekt oder Withvariable nicht definiert ist

    Grüße
     
  5. Hast Du das onLoad-Ereignis integriert? Du solltest ein VBA-Kennwort vergeben. Ohne VBA-Kennwort kommt es zu diesem Problem (Ursache unbekannt). Wenn das nicht hilft dann arbeite "IRibbonUI - Objekt wiederherstellen" durch.
     
  6. Hallo Rene,

    ja das Load ereignis ist mit drin (ICh hab das lediglich in deiner Mustermappe ergänzt [also den Versuch das zur LZ zu verändern])

    Kann es ein Problem damit geben, wenn verschiedenen eigens angelegte Tabs vorhanden sind das eine eineindeutige Zuweisung der Schaltfläche fehlt?

    Grüße
     
  7. Mit den Tabs hat das nichts zu tun. Probleme gibt es nur wenn alle Tabs das selbe onLoad-Ereignis haben bzw. der Prozedurname für das onLoad-Ereignis immer gleich ist.

    Wie bereits erwähnt musst Du ein VBA-Kennwort setzen. Dann Mappe neu starten. Das Problem sollte dann behoben sein. Ohne VBA-Kennwort bekomme auch ich diese Fehlermeldung, mit VBA-Kennwort keine Fehlermeldung mehr.
     
  8. Ribbon Textfeld ansprechen

    VErdammtes VBA =)

    Es funktioniert mit Passwort.
    Schade das man die Ursache nicht kennt... und somit evtl beheben (nicht das ich das könnte ) *biggrin.gif*

    Hab ich verstanden. Das onload bei verschiedenen Tabs innerhalb eines Addins braucht verschiedene Load ereignisse.

    Könntest du mir erläutert was sich hinter dem Load verbirgt ?

    Grüße
     
  9. Ohne onLoad wird das Ribbon erstellt und ist dann unveränderbar im Menüband.

    Mit onLoad wird eine Kopie des benutzerdefinierten Ribbon im Speicher abgelegt, worauf die Callbacks dann jederzeit Zugriff haben und das Menüband mit den geänderten Werten neu geladen werden kann. Das ist erforderlich da VBA keinen direkten Zugriff auf das Menüband ermöglicht.

    Invalidate heisst soviel wie "Lade Ribbon neu mit geänderten Werten". InvalidateControl lädt dagegen nur das angegebene Element neu.
     
  10. Vielen Dank für die Ausführung


    Ich hätte da noch eine Frage, wie bekomme ich die Werte denn Übertragen?


    Code:
    Hier entsteht der Wert der in das TExtfeld soll

    Code:
    Und so sollte er es mir eintragen

    So ist die UI gelöst


    PHP:
             <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
    onLoad="onload">
    <
    ribbon startFromScratch="false">
    <
    tabs>
    <
    tab id="tab01" label="Tools">
    <
    group id="grp01" label="Aufheben" >

    <
    button id="tgb01" label="Blatt" imageMso="AdpPrimaryKey"
    onAction "entfernen"
    size="large"/>

    <
    button id="tgb02" label="Mappe" imageMso="AdpPrimaryKey"
    onAction "Mappenwert"
    size="large"/>

    <
    editBox id="edb0" label="Ausgabe:" getText="editbox1_getText" />


    </
    group></tab></tabs></ribbon></customUI>
     
  11. Dafür gibt es "IRibbonUI - Objekt wiederherstellen". Über die IRibbonUI wird ein direkter Verweis auf das gespeicherte Ribbon gesetzt, was bei "objRibbon.Invalidate" nicht der Fall ist. Normalerweise dürfte das Problem damit nicht mehr auftreten. Funktoniert aber nur bei 98% aller Fälle, manchmal stürzt damit aber auch alles ab.

    Zur Erkärung:
    Bei "objRibbon.Invalidate" kann es vorkommen dass das Projekt die Bindung zum Ribbon verliert. Daher speichert man die "Kennung" des Ribbon zwischen und kann dann darauf zugreifen, die Bindung bleibt damit erhalten, naja meisten jedenfalls.
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  12. Mit "Call" jedenfalls nicht. Du kannst lediglich das Callback einer einfachen Schaltfläche fremdnutzen, indem Du Optional control As IRibbonControl nutzt. Bei einer Editbox funktioniert das aber nicht, da kein direkter Zugriff auf das Menüband möglich ist. Die Callbacks werden nur ausgelöst wenn das Menüband geladen wird. Daher auch objRibbon.Invalidate oder objRibbon.InvalidateControl "edb0".

    Du müsstest die Werte in einer öffentlichen Variable (oder an anderer Stelle speichern und diese dann im "getText" auslesen.

    "ByVal Wert" hat im Callback nichts zu suchen. Die Callbacks haben einen fest definierten Aufbau, da darf man keine weiteren Parameter hinzufügen.

     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
  13. Ribbon Textfeld ansprechen

    Traumhaft, es funktioniert.

    Bist mein persönlicher Held

    Und irgendwann kapier ich das auch =)

    ICh werd mich wahrscheinlich die nächsten Tage und Wochen weiter an dich wenden; wenn ich meine ganzen Adddins auf Ribbon anpasse =)

    Grüße
     
Thema:

Ribbon Textfeld ansprechen

Die Seite wird geladen...
  1. Ribbon Textfeld ansprechen - Similar Threads - Ribbon Textfeld ansprechen

  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