Clever-Excel-Forum

Normale Version: Optimale Höhe der Textbox einstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Experten,

ich möchte meine TextBox in der Höhe immer der eingestellten Schriftgröße, Schriftart sowie natürlich dem in der Textbox enthaltenden Text automatisch,
d.h. optimal anpassen. Nun gibt es natürlich die Funktion Autosize. Das Problem ist  aber, das die Breite der Textbox fest vorgegebnen ist, so dass immer nur
die Höhe der Textbox in Abhängigkeit von den oben genannten Paramtern optimal bestimmt werden muss.
Hallo,

es kommt auf die passende Reihenfolge an.
Teste mal so:
Private Sub CommandButton1_Click()
 With TextBox1
   .AutoSize = False
   .MultiLine = False
   .Width = 50
   '.Text = "Das ist ein etwas längerer Text."
   .MultiLine = True
   .AutoSize = True
 End With
End Sub
Gruß Uwe
Hallo Uwe,

danke für deine Hilfe, der Code funktioniert. Hatte gestern eine wirklich komplizierte Lösung, aber wie du schon sagtest, die Reihenfolge ist wichtig. Im Nachhinein ist die Sache natürlich wieder ganz einfach.
Aber so ist, frißt sich ein Denkfehler einmal fest, läufst du in die völlig falsche Richtung. Ich erlaube mir hier noch eine kleine Ergänzung:


Code:
Dim vbWidth
vbWidth = 200
With Me.Controls("TextBox" & 1)
  .AutoSize = False
  .MultiLine = False
  .Width = vbWidth
  .Text = "Das ist ein etwas längerer Text mit einigen vielen Worten."
  .MultiLine = True
  .AutoSize = True
  .Height = .Height
  .Width = vbWidth
End With

Nicht bei diesem Beispiel, aber bei einigen Fällen die ich hier bei mir durchgegangen bin, trat noch eine kleiner Fehler auf. Die Weite der TextBox war dann praktisch durch AutoSize gegeben. Deshalb die Höhe abspeichern
und das width nochmal mit dem Befehl .Width  = vbWidth wiederholt festlegen, damit die anfangs vorgegebene Weite für .Width  bestehen bleibt, also:

.Height = .Height
.Width = vbWidth