Eigenschaften für OLEObjects per Programm

Bild

Betrifft: Eigenschaften für OLEObjects per Programm
von: Manfred
Geschrieben am: 12.11.2003 08:59:05

Guten Morgen allerseits

Ich habe folgendes Problem:
Ich möchte per Programm eine Combobox erzeugen und dafür die Eigenschaften und Listeneinträge ebenfalls per Programm definieren:


Sub Combo()
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=100, Top:=60, Width:=90, Height:=20 _
        ).Select
    ActiveSheet.OLEObjects("ComboBox1").BackColor = 26
    ActiveSheet.OLEObjects("ComboBox1").Name = "cbo_Listen"
    For i = 1 To 10
    ActiveSheet.OLEObjects("ComboBox1").AddItem = i & ". Eintrag"
    Next
End Sub

Das Erzeugen der Combobox geht problemlos, nur bei den Eigenschaften und bei AddItem kommt ein Laufzeitfehler. Was mache ich falsch? Kann mir jemand helfen ?
Bild


Betrifft: AW: Eigenschaften für OLEObjects per Programm
von: Hans W. Herber
Geschrieben am: 13.11.2003 07:24:24

Hallo Manfred,

Du musst das Objekt des OLEObjects ansprechen. Sieh Dir hierzu folgende Seite der Excel-FAQ an:
http://xlfaq.herber.de/texte/192802h.htm

gruss hans


Bild


Betrifft: AW: Eigenschaften für OLEObjects per Programm
von: Manfred
Geschrieben am: 13.11.2003 09:40:01

Hallo Hans,

Vielen Dank für Deinen Tip.
Ich kann jetzt die Eigenschaft .Name ="cbo:Listen" und .AddItem ausführen. Bei der Hintergrundfarbe gelingt mir das allerdings nicht. Der Code ist wohl syntaktisch richtig - der Makro läuft fehlerfrei durch, die Farbe wird jedoch nicht gesetzt. Folgend
nochmals mein Makro:


Sub Combo()
    Dim Combo As OLEObject
    Dim i As Integer
    Range("a1").Select
    Set Combo = ActiveSheet.OLEObjects.Add _
                (ClassType:="Forms.ComboBox.1", _
                 Link:=False, _
                 DisplayAsIcon:=False, _
                 Left:=100, _
                 Top:=60, _
                 Width:=90, _
                 Height:=20)
    Combo.Activate
    Combo.Interior.Color = RGB(130, 80, 110)
    Combo.Name = "cbo_Listen"
    For i = 1 To 12
        Combo.Object.AddItem Format(DateSerial(1, i, 1), "mmmm")
    Next
    Combo.Object.ListIndex = 0
End Sub


Hast Du noch eine Idee wie man die Hintergrundfarbe setzen kann ?


Bild


Betrifft: AW: Eigenschaften für OLEObjects per Programm
von: Hans W. Herber
Geschrieben am: 13.11.2003 10:36:38

Hallo Manfred,

auch hier ist das Objekt anzusprechen, also:
Combo.Object.BackColor = RGB(130, 80, 110)

gruss hans


Bild


Betrifft: AW: Eigenschaften für OLEObjects per Programm
von: Manfred
Geschrieben am: 13.11.2003 15:12:27

Hallo Hans,

jetzt funktionierts

Nochmals vielen Dank


Bild

Beiträge aus den Excel-Beispielen zum Thema " Eigenschaften für OLEObjects per Programm"