ListBox umbenennen
Betrifft: ListBox umbenennen
von: Marco
Geschrieben am: 24.10.2014 16:11:34
Hallo Zusammen!
Ich habe folgendes Problem: Ich möchte via VBA-Code aus einem Modul heraus eine ListBox erzeugen und im direkt darauf folgenden Schritt den Namen ändern, das sieht momentan wie folgt aus:
Option Explicit
Sub SoSollEsSein()
'Im ersten Schritt ListBox erzeugen, Maße und Ausrichtung erst mal egal
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=(1), Top:=(1), _
Width:=95.2941176470588, Height:=60).Select
'Erzeugen klappt wunderbar
'Anschließend den Namen ändern, um ihn später eindeutig zuordnen zu können:
'Diese Methode funktioniert nicht
ActiveSheet.OLEObjects("ListBox1").Object.Name = "ZumBeispielSo"
'Diese Methode funktioniert auch nicht
ActiveSheet.OLEObjects("ListBox1").Name = "ZumBeispielSo"
'Und diese funktioniert auch nicht
ActiveSheet.ListBox1.Name = "ZumBeispielSo"
End Sub
Würde ich mein Vorhaben auf 2 verschiedene Sub's aufteilen, also erst erzeugen, dann umbenennen, _
dann würde es funktionieren. Also in etwa so:
Sub ErstErzeugen()
ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=(1), Top:=(1), _
Width:=95.2941176470588, Height:=60).Select
End Sub
Sub DannUmändern()
'Dann funktioniert das auf einmal:
ActiveSheet.ListBox1.Name = "ZumBeispielSo"
End Sub
Erst nach dem das obere Makro beendet wird, funktioniert dann das andere, und zwar auch nur _
manuell. Ich hab mittlerweile schon alles versucht und bin schon total verzweifelt. Auch mit Call-Befehl geht nichts. Hab auch schon versucht das ganze mit einem dritten Makro zu kapseln, geht auch nicht....
Sub DrittesMakro()
Call ErstErzeugen
Call DannUmändern
End Sub
Kann mir wer helfen und auch vllt erklären wo das Problem liegt?
Danke im Voraus!!!
Betrifft: AW: ListBox umbenennen
von: Tino
Geschrieben am: 24.10.2014 16:18:54
Hallo,
versuch es mal so.
Mach es aber nicht zu oft, sonst hast du schnell mehrere übereinander!
Sub SoSollEsSein()
'Im ersten Schritt ListBox erzeugen, Maße und Ausrichtung erst mal egal
With ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=(1), Top:=(1), Width:=95.2941176470588, Height:=60)
.Name = "ZumBeispielSo"
End With
End Sub
Gruß Tino
Betrifft: AW: ListBox umbenennen
von: Luschi
Geschrieben am: 24.10.2014 16:27:49
Hallo Marco,
bei mir klappt das so mit Excel 2003, 2010,2013:
Sub SoSollEsSein()
Dim xList As Object
'Im ersten Schritt ListBox erzeugen, Maße und Ausrichtung erst mal egal
Set xList = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=(1), Top:=(1), _
Width:=95.2941176470588, Height:=60)
'Erzeugen klappt wunderbar
'Diese Methode funktioniert!!!
xList.Name = "ZumBeispielSo_1"
Set xList = Nothing
End Sub
Gruß von Luschi
aus klein-Paris
Betrifft: AW: ListBox umbenennen
von: Marco
Geschrieben am: 24.10.2014 17:51:56
Hab beide Vorschläge ausprobiert und beide haben wunderbar funktoniert! Echt Spitze und superschnelle Antwort! Was mich noch opional interessieren würde ist, wieso meine Vorschläge nicht geklappt haben, aber eine Antwort darauf erwarte ich jetzt nicht auch noch.
Vielen Dank und viele Grüße!
Beiträge aus den Excel-Beispielen zum Thema "ListBox umbenennen"