Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1200to1204
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

EditField Breite Degressiv berechnen (eFunktion?)

EditField Breite Degressiv berechnen (eFunktion?)
Andreas
Hallo Herber Fans,
ich suche nach einer Methode DropDowns und EditFields in ihrer Breite in einem CommandBar passend darzustellen. Durch den intensiven Einsatz gerade von DropDown Feldern wird es erforderlich, daß diese sich automatisch an die Breite des gewählten Textes anpassen. Gleiches gilt für EditFields, in denen Änderungen vorgenommen wurden.
Ich habe schon so viel experimentiert. Grundlage war das Wissen, das ein CommandBarButton seine Breite automatisch an seine Caption anpaßt. Also ging ich über einen Alias Button. D.h. ich habe den Text des EditFields temporär auf einen Button gelegt, anpassen lassen und dann die Width des Buttons ausgelesen. Das hat alles NICHT zufriedenstellend funktioniert. Das Hauptproblem ist, daß sich das Width Verhalten mit zunehmender Länge verändert. Ich bin mittlerweile auf dem Stand, daß ich eine degressive (?) Function in Abhängigkeit der Länge des Textes benötige. D.h. wenn der Text im EditField nur 5 Zeichen lang ist, dann wird die .Width auf (5 * 1.6) eingestellt. Wenn der Text 50 Zeichen lang ist, dann muß die Width auf (50 * 0.9) eingestellt werden. D.h. der Multiplikator wird kleiner, je mehr Text vorhanden ist. Ich habe dies versucht mit wilden Grundrechenfunktionen zu simulieren – alles nicht sehr befriedigend, da es immer nach „von hinten durch die Brust ins Auge" riecht… Ein kleiner Geistesblitz brachte mich nun auf die Degression über eine e-Funktion. Ich bekomme es aber nicht hin… Mathe fiel mir früher schon schwer und jetzt noch mit viereckigen Augen in VBA. Ich pack es nicht.
Ich habe eine Beispieldatei erstellt. Im VBE Modul „Diese Arbeitsmappe“ wird gleich ein CommandBar mit zwei EditFields erstellt. Bei beiden wird die Länge des eingetragenen Textes mit dem Faktor 8 multipliziert. Bei „Haus“ ist die Breite korrekt. Bei „Haus Haus Haus Haus“ ist das EditField zu breit. Genau diese Effekt möchte ich mit einer Funktion ausgleichen.
https://www.herber.de/bbs/user/73794.xls
Ich würde mich sehr freuen, wenn sich dies jemand ansehen mag!
Vielen Dank und Grüße, Andreas Hanisch

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Ich habe Analoges bisher auch nur empirisch...
02.03.2011 20:06:35
Luc:-?
…gelöst, Andreas,
aber danke für den Hinweis. Wenn ich mir die alten Sachen mal irgendwann wieder ansehe, wird's mir sicher wieder einfallen. ;-)
Jetzt liegt das Thema leider Out of Order
Gruß Luc :-?
...Allerdings hatte ich dabei die BstBreite...
02.03.2011 20:55:23
Luc:-?
…annähernd durch Einteilung in BstKlassen berücksichtigt…
(s. Nepumuk!)
Luc :-?
AW: ...Allerdings hatte ich dabei die BstBreite...
03.03.2011 16:12:39
Andreas
Hallo Luc:-? und Nepumuk,
das ist etwas komplizierter als ich dachte. Ich habe heute weiter mit den Funktionen EXP und LOG experimentiert. Das war auch keine allgemeingültige, optisch ansprechende Lösung. Auch das ermitteln der optimalen Width eines jeden CHR (1 to 255) hat sich als nicht praktikabel herausgestellt. Und meine präferierte Lösung ist nun auch einfacher als gedacht. Ich lasse die Function mit einem Select Case auf Intervalle arbeiten. In Abhängigkeit der Anzahl der Zeichen wird pro Intervall die Width mit einem anderen Faktor erstellt. Diese Function muß noch statistisch angelernt werden, für welchen Intervall welcher Faktor eine adäquate Width ergibt, aber das ist machbar.
Euch vielen Dank für die Anregung (Ich glaube beim Wort "BstKlassen" hat es Klick gemacht.).
Grüße, Andreas
Anzeige
Freut mich, meine Klassen waren...
06.03.2011 14:51:51
Luc:-?
…alle GB + superbreite KB wie m u. w, superschmale KB wie i u. l und restl KB, Andreas;
die extra gezählt und zur Gesamtzahl in Beziehung gesetzt. Ist allerdings auch nur 'ne Näherungslösung, die idR nicht voll befriedigen kann.
Gruß+schöSo, Luc :-?
AW: EditField Breite Degressiv berechnen (eFunktion?)
02.03.2011 20:49:51
Nepumuk
Hallo,
du berücksichtigst die Breite der Buchstaben nicht. Das ist schließlich keine Proportionalschrift bei der alle Zeichen die selbe Breite haben.
Gruß
Nepumuk

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige