Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Textbox Font.Size abhängig machen von Textlänge

Betrifft: Textbox Font.Size abhängig machen von Textlänge von: Hermann Schindler
Geschrieben am: 24.06.2008 15:42:03

Hallo,

in einer Tabelle hab ich ein Textfeld, dass von der Größe her fix sein MUSS.

Manche der hohen Herren wollen da mehr reinschreiben, als Platz ist - diejenigen, die mit dem Platz auskommen, wollen keine kleine Schrift. (Psychologische Diskussionen hab ich schon hinter mir.)

Nun war meine Überlegung:
Wenn in das Textfeld mehr Zeilen geschrieben werden, als Platz haben, dann reduziere ich die Font.Size.
Wenn in das Textfeld weniger Zeilen geschrieben weren, als Platz haben, dann erhöhe ich die Font.Size.

Zu diesem Zweck hab ich mir den unterschiedlichen Platzbedarf (Height) der verwendeten Font.Sizes ermittelt.
z.B. FontSize 9.75 (Arial 10) - die erste Zeile im Textfeld benötigt Height=18 jede weitere Zeile Height=12
Daraus ermittle ich die mögliche Anzahl an Zeilen im Textfeld und vergleiche sie mit der tatsächlichen Zeilenanzahl. Dementsprechend erhöhe bzw. verringere ich die Font.Size und knapp vor der Unlesbarkeit erscheint "Text Overflow".

Allerdings gerate ich dann bei manchen Textfeldgrößen in eine "Doppelmühle": Mit einem Tastenanschlag wird der Zeichensatz kleiner, mit dem nächsten größer, mit dem nächten kleiner, mit dem nächsten größer .... bis man die "Doppelmühle" verlässt und im kleiner Zeichensatz weiterschreibt.

Ich hab mich in meinem Denkmuster schon so verstrickt, dass ich das Problem noch lösen könnte, indem ich das Ereignis "Textbox_Change" aufblase - aber eine vernünftige bzw. elegante Lösung ist mir wesentlich lieber.

Ich wünsche viel Spass beim tüfteln und freue mich auf eine Lösung.
Hermann

  

Betrifft: AW: Textbox Font.Size abhängig machen von Textlänge von: Karsten
Geschrieben am: 24.06.2008 19:58:17

Hallo,

Du kannst doch unter 'Zellen formatieren', 'Ausrichtung', 'Vertikal' 'Zentrieren' für die Zelle festlegen

Gruß Karsten


  

Betrifft: AW: Textbox Font.Size abhängig machen von Textlänge von: Daniel
Geschrieben am: 24.06.2008 23:09:47

Hi

nimm nicht das CHANGE-Event, sondern das LOST_FOCUS- (Steuerelementtextbox) bzw EXIT- (Userformtextbox) Event.
das wird erst ausgelöst, wenn die Textbox verlassen wird
das hat für deine Chefs den Vorteil, daß sie den Text ohne Flackern zu Ende schreiben können

Gruß, Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Textbox Font.Size abhängig machen von Textlänge"