RibbonX Gallery als mehrspaltiger Listbox-/Comboboxersatz
#11
@René

ja, dass wäre auch ein Weg.
Allerdings müsste man dann um sowas wie Spalten abgebildet zu bekommen entsprechend der Width Vorgabe Leerzeichen mitgeben.
im OnAction() kann man diese via Split() am senkrechten Strich mit Trim() wieder entfernen.

Da ist dann aber wieder das Problem der Abhängigkeit der Standartschrift.

Wenn man sich jetzt nicht aufs Selektieren versteift wäre mein ursprünglicher Lösungsansatz ja eine Notlösung.

Gruß Uwe

Ps.: für Interessierte noch zusätzlich mit Ausgabe des Datensatzes in ein Listobjekt via Button


Angehängte Dateien
.xlsm   Label Gallery RibbonX.xlsm (Größe: 28,55 KB / Downloads: 4)
Antworten Top
#12
Hallöchen,

ich glaube, vbtab kann man da auch nutzen...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
Hallo André,

ja das könnte ebenfalls eine Möglichkeit sein.

Aber eine Notlösung bleibt dieser Lösungsansatz egal wie rum man die Sache betrachtet trotzdem.

Gruß Uwe
Antworten Top
#14
Hallo Miteinander,

die Sache mit dem Gallery Element des Ribbons hat eine Grenze, welche 1000 lautet.
Es können also maximal 1000 Labels gesetzt werden bis Ribbon bei Neustart der Datei einstürzt.

Dies macht die Listboxsimulation im Ribbon so ziemlich unsinnig.

Ich bin mir mit dieser Begrenzung auch ziemlich sicher, dass es kein Speicherplatzproblem ist, da ich zur Sicherheit, dies noch auf dem Laptop mit der 4-fachen Speichergröße unter O2021 auch noch mit demselben Ergebnis überprüft habe.

Was natürlich ohne Probleme geht ist, statt diesem Konstrukt dann ComboBox oder DropDown zu nutzen.
Für Interessierte hier das Konstrukt via Gallery + Bearbeitung einfach gehalten via Editboxen.


Gruß Uwe


Angehängte Dateien
.xlsm   ListGallery Ribbon statt Listbox Userform nur ausgewählte Spalten.xlsm (Größe: 53,03 KB / Downloads: 3)
Antworten Top
#15
@Uwe,

Jupp, man möchte auf jeden Fall mal zum Test die grenzen ausloten. Wie viel Schriftarten stehen eigentlich in der Liste?

Mit so vielen Einträgen kommt man aber auch in die Region, wo man überlegen kann, ob da je nach Anwendungsfall ein anderer Ansatz die Userfreundlichkeit erhöhen kann. Scrollen wäre für mich wahrscheinlich schon bei weniger Einträgen zu mühsam. Bei einer Combo kann man ja normalerweise noch was eingeben und kommt bei einer sortierten Liste dann wenigstens in die Region des gewünschten Eintrages. Bei Namen könnte man als Vorauswahl A-Z nehmen, ... Jetzt wäre mal die Frage, was passiert, wenn ich mehr als 1.000 Fonts in Windows hätte Wink OK, war jetzt alles nicht das Thema 100
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#16
@André,

eigentlich ja. Mit Laden eines gefilterten Bereiches begrenzt auf die 1000 Zellen kann man das Problem umgehen. Man kann ja einen Hinweis bei Überschreitung hinterlassen, dass man besser eingrenzen soll. Mit einer ComboBox filtern (Editbox reicht da auch schon) wäre das kein Problem.
Das Erzeugen der Labels, wenn nicht gefiltert wurde kann man problemlos unterbinden.

Man kann sicherlich auf Grund der beiden Anfragen in den anderen Foren mal über eine solche Lösung nachzudenken.

Den Filter nachträglich einbauen (Kombi Suchfeld in Suchspalte) ist keine Zauberei, da ich alles eh schon über Arrays angelegt hatte. Es wäre lediglich die Zeilennummern noch zwecks Zuordnung den Array mitzugeben.


Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Egon12 für diesen Beitrag:
  • schauan
Antworten Top
#17
Hallo Miteinander,
 
ich habe jetzt mal einen Filter eingebaut.
Damit die Sache einen Sinn hat, habe ich eine praktikablere Tabelle mit anonymisierten Daten dafür benutzt.
Besser wäre es gewesen den Code komplett neu zu schreiben, aber der draufgesetzte (ergänzte) Teil tut es auch.

Dazu habe ich, wo es Sinn macht, Dropdowns statt Editboxen eingebaut.
Eine weitestgehende Fehlerbehandlung ist auch eingebaut.

Eine Sache ist mir unter Win11/O2021 aufgefallen, was offensichtlich mit der Asynchronität des Ribbons in Verbindung mit VBA zu tun hat.
Es kommt nach öffnen der Datei und zügigen Anklicken des Gallery Controls beim der Manipulieren eines Arrays via .Index() zu einem sinnfreien Fehler in VBA. DoEvent hilft da leider auch nicht weiter aber dafür nach dem Start kurz innehalten.

Unter Win10/O2019 passiert dies nicht.
 
Mal abgesehen von diesem Konstrukt gibt es auch den Weg, statt des Gallery Controls ein Dropdown zu verwenden.
Dies ist dann leichter mit wesentlich weniger Code zu programmieren.

In jeden Fall muss man die Zeilennummern separiert zuweisbar mitgeben, da diese Ribbon Controls nicht mehrspaltig sind.
Man kann die Zeilennummer auch an den Text hinten dran mit Separator hängen um mit Split() an die Zeilennummer dran zu kommen.
Schicker ist dies in einem getrennten Array abzulegen, so wie in meinem Beispiel.

Die Datei für Interessierte: 
.xlsm   Gallery Ribbon statt Listbox Userform Fake Datensätze.xlsm (Größe: 183,06 KB / Downloads: 1)
 
Gruß Uwe
Antworten Top


Gehe zu:


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