Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1480to1484
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dynamisches Ribbon ComboBox Item mit eigenem Bild

Dynamisches Ribbon ComboBox Item mit eigenem Bild
15.03.2016 19:12:09
Roland
Hallo VBA-Profis
Ich habe folgendes Problem:
Ich möchte in einer Ribbon-ComboBox eigene Bilder den Items dynamisch zuweisen.
Die Bilder speichere ich in der XML mit dem UI Editor ab.
Wenn ich die Items statisch per XML-Code, mit zB. ... image="Bildname1" ... erzeuge wird in der Combobox das Bild einwandfrei angezeigt.
Wenn ich ein MSO Bild in der ComboBox dynamisch inizialisiere funktioniert dies auch einwandfrei. XML: ... getItemImage="cboFahrzeugWahl_getItemImage" ... VBA:
'Callback for cboFahrzeugWahl getItemImage

Public Sub cboFahrzeugWahl_GetItemImage(control As IRibbonControl, index As Integer, ByRef  _
image)
image = "Info"
End Sub

Wenn ich jetzt aber den Namen des Bildes, welches ich im XML gespeichert habe, übergebe, wird kein Bild angezeigt.
'Callback for cboFahrzeugWahl getItemImage

Public Sub cboFahrzeugWahl_GetItemImage(control As IRibbonControl, index As Integer, ByRef  _
image)
image = "Bildname1"
End Sub

Ich vermute, dass beim Syntax GetItemImage nur die MSO Bibliothek nach dem übergebenen Namen durchsucht wird und nicht das XML.
Wie muss ich die Funktion aufrufen, damit das XML und nicht die MSO Bibliothek durchsucht wird?
Alle Beispiele im Netz, die ich gefunden habe, sind entweder Statisch mit eigenen Bildern, oder dynamisch mit MSO-Bildern.
Liege ich mit meiner Vermutung richtig und kennt jemand den entsprechenden Aufruf? Oder gibt es für diesen Fall eine ganz andere Lösung?
Vielen Herzlichen Dank für eure Bemühungen.
Gruss
Roland

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamisches Ribbon ComboBox Item mit eigenem Bild
15.03.2016 20:53:20
mumpel
Hallo!
Die Bilder/Icons müssen sich auf der Festplatte befinden. Kannst ja mal das versuchen. => RibbonX-Workshop - Icons zur Laufzeit ändern.
Du kannst auch mal versuchen ein Set davorzusetzen, also Set image = "Bildname1" (ungetestet).
Gruß, René

AW: Dynamisches Ribbon ComboBox Item mit eigenem Bild
16.03.2016 08:39:28
Roland
Hallo René
Herzlichen Dank für deine prompte Hilfe und den wertvollen Link, den ich noch nicht kannte.
Mit set image = "Bilddatei1" hatte ich schon ergebnislos versucht.
Da mein "Tool" ( Exceldatei ) an ca. 100, dezentral stationierte Personen per Update-Mechanismus verteilt wird, möchte ich möglichst nur eine Datei versenden. Aus diesem Grund habe ich nach einer Lösung gesucht, bei der die Bilddateien in der Exceldatei integriert sind.
Nun zum technischen.
Da ich nicht dynamisch an die Bilddatei im XML herankomme, habe ich nach einer Möglichkeit gesucht, das Bild in der Exceldatei unter zu bringen und dies für den Ribbon zu verwenden.
Nun habe ich folgende Lösung gefunden, die ich für alle die vor dem gleichen Problem stehen, gerne hier posten möchte.
Ich erstelle auf einer für den Anwender nicht sichtbaren Tabelle ein Bild ActiveX Steuerelement. Fülle dies mit dem gewünschten Bild ab und benenne es in meinem Beispiel mit img_BmwKombi.
Nun kann ich mit dem unten stehenden Code die ComboBox Items mit dem gewünschten eigenen Bild versehen. Wichtig dabei ist, dass dabei zuerst eine Objekt erzeugt werden muss und dem Item image nur das Bild (.Picture) des Objekts übergeben wird.
Ein kleiner Nachteil hat die ganze Sache. Da das Bild AktiveX Steuerelement nur .bmp Dateien akzeptiert, sieht es bei mousover über die Auswahl nicht ganz so schön aus wie bei einem .png ( Hintergrund wird Weiss dargestellt.) Mit dem kann ich aber leben.
Somit schliesse ich diesen Beitrag.
Gruss
Roland
'Callback for cboFahrzeugWahl getItemImage
Public Sub cboFahrzeugWahl_GetItemImage(control As IRibbonControl, index As Integer, ByRef  _
image)
Dim obj_Image As Object
Set obj_Image = Tabelle29.img_BmwKombi
Set image = obj_Image.Picture
Set image = Nothing
Set obj_Image = Nothing
End Sub

Anzeige

50 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige