Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1692to1696
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

ListBox-Eigenschaften per Macro setzen

ListBox-Eigenschaften per Macro setzen
15.05.2019 11:46:05
Rainer
Hallo VBA-Spezialisten,
Ich sitze seit gestern an einem Problem, das ich zwar teilweise lösen konnte, aber leider eben nur teilweise. Ich hoffe jemand von euch kann mir auf die richtige Fährte helfen. Folgendes Problem:
Der Anwender kann in einem Excelsheet per Button eine neue Zeile anlegen (so gelöst, weil dabei einige Formeln ergänzt/angepasst werden). Dabei soll auch eine List-Box hinzugefügt werden, in der der Anwender bestimmte Elemente markieren kann.
Das Anlegen der List-Box klappt:
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=83.5, Top:=t.Top + 1, Width:=175, Height:=97.5).Select
Nun sollen aber noch drei Eigenschaften angepasst werden. Das Aufzeichnen funktioniert leider nicht, da bleibt das Makro leer. Ich habe herausgefunden, wie dies in einer Private Sub (in der Beispieldatei auch enthalten) geht:
ListBox1.ListStyle = fmListStyleOption
ListBox1.MultiSelect = fmMultiSelectMulti
ListBox1.ListFillRange = "Details!A350:A365"
(Die Range wird in der Praxis dann natürlich variabel sein und vom Makro an Hand anderer Kriterien bestimmt.)
Aber wenn ich diese Befehle direkt in die Sub übernehme, mit der ich die List-Box anlege kommt ein runtime error 424. Soweit ich weiß kann ich die Private Sub ja nicht aus dem normalen Makro heraus aufrufen. Von daher: Wer kann mir sagen, wie ich die Befehle direkt im Makro angeben muss bzw. was ich evtl. ergänzen muss, damit es geht?
PS1: Ein Datei mit der Situation ist angefügt. Ich habe sie massiv abgespeckt (ist normalerweise breiter, wesentlich länger und hat noch viel mehr Funktionen). Also bitte nicht wundern, wenn das Beispiel nicht besonders viel Sinn macht, ich will aber nicht mit der ganzen Komplexität ablenken, die ja ansonsten gut funktioniert.
PS2: Im Moment arbeite ich für den Test noch mit der festen Einstellung ListBox1 (der Name den Excel für die erste ListBox vergibt). Ich habe mich noch nicht darum gekümmert wie ich den Namen der ListBox bekomme, die gerade angelegt wurde. Wenn das zufällig jemand weiß bin ich auch hier für einen Hinweis dankbar.
LG, Rainer

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ListBox-Eigenschaften per Macro setzen
15.05.2019 12:06:31
Torsten
dein VBA Projekt ist Password geschuetzt
AW: ListBox-Eigenschaften per Macro setzen
15.05.2019 12:52:47
Rainer
Ahh, sorry. Auf dem Tab und im Makro hatte ich das Passwort rausgenommen, aber nicht an das ganze Worksheet gedacht. Hab's nun korrigiert, hier der neue Link.
Das geht prinzipiell...
15.05.2019 12:32:52
Case
Hallo, :-)
... so der Spur nach: ;-)
Option Explicit
Public Sub Main()
Dim objOLE As OLEObject
Set objOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=80, Top:=80, Width:=180, Height:=100)
With objOLE
.Name = "Meine_ListBox"
.ListFillRange = "Details!A350:A365"
.Visible = False
.Visible = True
.Object.ListStyle = fmListStyleOption
.Object.MultiSelect = fmMultiSelectMulti
.Object.MatchEntry = fmMatchEntryComplete
End With
Set objOLE = Nothing
End Sub
Servus
Case

Anzeige
AW: Das geht prinzipiell...
15.05.2019 13:02:47
Rainer
Hallo Case,
DANKE vielmals. Auf die Idee mit With und Objekt zu arbeiten bin ich leider nicht selbst gekommen. Klappt ausgezeichnet!
LG, Rainer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige