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!!!