Clever-Excel-Forum

Normale Version: Listbox-Höhe soll sich automatisch an Anzahl der Einträge anpassen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Einen schönen Abend wünsche ich,

habe bei meiner ListBox1 folgenden Code:
Code:
With ListBox1
.SetFocus
.MultiSelect = fmMultiSelectMulti
.AddItem "Artikel 1"
.AddItem "Artikel 2"
.AddItem "Artikel 3"
'Höhe der Listbox soll sich der Anzahl der Einträge, also der AddItems anpassen
.Height = .ListCount * .Font.Size * 1.25

End With

Das Problem, die Höhe der ListBox1 soll in Abhängigkeit von den Einträgen dynamisch sein. Aber leider tut sich bei mir nichts.
Auch wenn ich .Height = irgendeine Zahl eingebe, die Höhe der Listbox bleibt immer so groß wie ich sie auf der UserForm gezeichnet habe.
Was mache ich falsch?
Hi

bei welchem Ereignis soll sich die Listbox denn verändern?
da würde uns die Ansicht des ganzen Codes vielleicht weiter bringen
und nicht nur ein Ausschnitt davon
wenn ich den Code hinter einen Commandbutton lege
dann ist die Listbox nur noch 3 Zeilen hoch

MfG Tom
Hallo Crazy Tom,

also ich bin mit der Listbox eigentlich noch gar nicht vertraut.

Ich dachte mir anhand des vorliegenden Codes zunächst mal folgendes, die Listbox wird im Rahmen des UserForm_Initialize mit den 3 Einträgen dort geladen. Tut sie ja auch.
Dort werden mir dann in der Listbox1 die 3 Einträge Artikel 1 bis Artikel 3 gezeigt.
Die Anpassung der Höhe misslingt jedoch bei diesem Initialisierungsprozess.
Hi

das habe ich im Activate-Ereignis getestet

Code:
Private Sub UserForm_Activate()
   With ListBox1
       .SetFocus
       .MultiSelect = fmMultiSelectMulti
       .AddItem "Artikel 1"
       .AddItem "Artikel 2"
       .AddItem "Artikel 3"
'Höhe der Listbox soll sich der Anzahl der Einträge, also der AddItems anpassen
       .Height = .ListCount * .Font.Size * 1.5
   End With
End Sub

MfG Tom
Hallo Crazy Tom,

funktioniert danke. Aber, ich sage mal  spitz genau wie "meins", d.h. ich starte mit UserForm_initialize  und funktioniert nicht, du mit Activate und es funktioniert.

Bitte sage mir als Experte, warum?  Ich wäre da nie drauf gekommen, wo liegt der Unterschied?!
Hi

ich bin bei weitem kein Experte
befasse mich auch selber erst seit ca. 2½ Jahren mit VBA


vielleicht wirst du hier etwas mehr erfahren

http://www.vb-fun.de/cgi-bin/loadframe.p...l025.shtml

MfG Tom
Danke für deine Hilfe und danke für den Link.

Kein Experte, nun ja...  Wahrscheinlich müssen das alle sagen, weil die Programmierung so extrem umfangreich ist und de facto keiner alles beherrschen kann.

Dir einen schönen Abend.
Hallo,

Zitat:Bitte sage mir als Experte, warum?  Ich wäre da nie drauf gekommen, wo liegt der Unterschied?!


ich denke mir das mal so erklären zu können. Wenn ich etwas Inizialisiere, dann gebe ich ja lediglich ein paar Vorgaben, ähnlich der Deklaration von Variablen oder der Formatierung von Zellen.
Das passiert zunächst mal alles passiv während sozusagen das Aktivieren dann das Gewehr entsichert.
Doofer Vergleich? ... Na ja, ... mir ist aber kein dümmerer eingefallen  :05: