Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema ListBox
BildScreenshot zu ListBox ListBox-Seite mit Beispielarbeitsmappe aufrufen

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"