Registriert seit: 01.08.2016
Version(en): 2007
27.08.2016, 18:21
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2016, 18:42 von Lupy.)
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?
Registriert seit: 12.04.2014
Version(en): Office 365
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
Registriert seit: 01.08.2016
Version(en): 2007
27.08.2016, 18:53
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2016, 10:43 von Rabe.
Bearbeitungsgrund: Redundanten Zeilenumbruch entfernt
)
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.
Registriert seit: 12.04.2014
Version(en): Office 365
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
Registriert seit: 01.08.2016
Version(en): 2007
27.08.2016, 19:12
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2016, 10:46 von Rabe.
Bearbeitungsgrund: redundanten Zeilenumbruch entfernt
)
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?!
Registriert seit: 12.04.2014
Version(en): Office 365
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.shtmlMfG Tom
Registriert seit: 01.08.2016
Version(en): 2007
27.08.2016, 19:55
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2016, 10:45 von Rabe.
Bearbeitungsgrund: redundanten Zeilenumbruch entfernt
)
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.
Registriert seit: 11.04.2014
Version(en): '97 bis 2016; 365
27.08.2016, 22:05
(Dieser Beitrag wurde zuletzt bearbeitet: 20.09.2016, 10:45 von Rabe.
Bearbeitungsgrund: redundanten Zeilenumbruch entfernt
)
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: