Clever-Excel-Forum

Normale Version: Textbausteine mit vba
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
..nein @juvee,

das hast Du missverstanden. Sorry wenn das so rüberkam...
Dich meinte ich damit nicht. Du wolltest lediglich helfen (hast Du ja auch). 
Ich meinte den TO, der auf Biegen und Brechen auf einer unnötigen VBA Lösung für ein total banales Problemchen bestand um vlt. mit Deiner Lösung irgendwen zu beeindrucken... Jedenfalls fällt mir kein anderer Grund ein, weshalb man auf einer ungünstigeren Lösung beharrt... Der genannte Grund, es könnten ja mal mehr als 25 Einträge sein, ist wirklich nicht einleuchtend oder überzeugend...
@ Ralf,

na dann nehme ich meine sarkastischen Zeilen zurück Angel 

Juvee
...alles ist gut.... 57

(03.11.2022, 17:41)schauan schrieb: [ -> ]ich versuch, Verständnis für den TE aufzubringen Smile Wenn ich den kompletten Text im Dropdown haben wollte, müsste ich die Zellen breiter machen, was nun auch wieder unnötig oder gar unerwünscht ist ...

...smile... das ehrt Dich, aber die Zelle ist der Ort, an welchem ich die Information sehen will... und beim Drucken gibt es die Form auch nicht dazu...
Was nutzt mir eine abgeschnittene Info, bei der im schlimmsten Fall die ersten 5 Buchstaben oder Ziffern auch noch gleich sind?
Hallöchen,

Zitat:...smile... das ehrt Dich, aber die Zelle ist der Ort, an welchem ich die Information sehen will...
Was nutzt mit eine abgeschnittene Info, bei der im schlimmsten Fall die ersten 5 Buchstaben auch noch gleich sind?

Genau. In der Zelle mit dem Textumbruch sieht man den kompletten Text, im Dropdown aber nicht. Guckst Du ...
Für die Listen-Quelle ist die Zellbreite egal. Da will / soll man ja nicht reinschauen.
Vielen lieben Dank juvee für deinen Lösungsvorschlag !!!

Vielen Dank für deinen Vorschlag!!!!
Hallo und guten Morgen von mir,

sehr sinnvoll finde ich das ganze auch nicht, aber ich gehe mal davon aus, dass es dem TE darum geht, zu lernen. Ich hätte da noch eine Lösung mit einer "SingleChoiceBox", die letztlich wie eine MessageBox zu verwenden ist. Kern ist eine Userformklasse mit einer getSingleChoice-Methode, der man ein Array mit Auswahlmöglichkeiten übergibt, aus der der User dann eine Auswahl treffen kann. Das Array kann über eine Textbox gefiltert werden. Der Einfachheit halber gibt es eine Wrapper-Methode, die die Instanzierung der Klasse kapselt; natürlich lässt sich die Klasse wie jede andere Klasse auch eigenständig nutzen.

Ich habe das ganze schnell zusammengezimmert, eine Fehlerbehandlung findet nicht statt. In der Beispieldatei wird die SingleChoiceBox wie von dir beschrieben verwendet. Sobald im Listobject auf dem Tabellenblatt "Vordergrund" im Feld Text eine leere Zelle ausgewählt wird, wird die Singlechoicebox mit dem Inhalt der Textbausteine aufgerufen.

Viel Vergnügen mit der Datei!

derHöpp
@DerH

Vielen dank !
Ich hab mal versucht die Vorgehensweise zu verstehen.
Darum eine Frage : warum die 'wrapper' ? Welche Vorteile ?

Ich habe versucht die Struktur zu behalten, doch die Anzahl der Variablen zu minimieren.
Vielleicht kannst du meine Gedankenfehler korrigieren ?
@derHöpp,

Chapeau! Super Lösung, wieder etwas dazugelernt, Danke

VG Juvee
Hallo noch einmal,

die Wrapper-Function habe ich erstellt, damit man nicht bei jeder Nutzung im Programm an die Instanzierung und Terminierung denken muss. Das ganze lässt sich dann einfach wie auch eine Messagebox mit einem einfachen Funktionsaufruf nutzen.

Den einfachen With New ClassObject-Block habe ich dabei nicht verwendet, weil dann eine Unterscheidung der Rückgabewerte (-1 für Abbruch, sonst String) nicht mehr möglich ist. Eine temporäre Variable wäre dann notwendig. Zusätzlich würde ich das Transponieren nicht in die Klasse auslagern. Damit sie Wiederverwendbar bleibt, sollte der aufrufende Code sicherstellen, dass ein eindimensionales Array übergeben wird (Aufgabe der Klasse wäre es allerdings, einen Fehler zu werfen, wenn kein eindimensionales Array übergeben wird).

Viele Grüße
derHöpp
Seiten: 1 2