OLE-Objekte

Bild

Betrifft: OLE-Objekte von: Rolf Beißner
Geschrieben am: 10.02.2005 08:09:49

Hallo Forum,

gibt es eine Möglichkeit, ein Steuerelement
in einem Tabellenblatt in einem Arbeitsgang
anzulegen und zu modifizieren?

Die beiden Prozeduren (s.u.) kann ich nur
isoliert ausführen, also nicht via "Call"
nacheinander aufrufen.

Herzliche Grüße
Rolf

'Combobox anlegen

Sub combo_add()
    Sheets("Übungen").OLEObjects.Add(ClassType:="Forms.combobox.1", Link:=False _
        , DisplayAsIcon:=False, Left:=200, Top:=10, Width:=250, Height:=30).Select
End Sub


'Combobox-Eigenschaften zuweisen
Sub combo_modify()
    Dim cb As ComboBox
    Dim A As Variant
    A = Array("Bahnhof", "Zeil", "Römer", "Zoo")
    Set cb = Sheets("Übungen").ComboBox1
    With cb
        .List = A
        .Font.Size = 14
    End With
End Sub

Bild


Betrifft: AW: OLE-Objekte von: Josef Ehrensberger
Geschrieben am: 10.02.2005 08:15:24

Hallo Rolf!

ZB. so.

Sub combo_add_modify()
    Dim cb As OLEObject
    Dim A As Variant
    A = Array("Bahnhof", "Zeil", "Römer", "Zoo")
    
    Set cb = Sheets("Übungen").OLEObjects.Add(ClassType:="Forms.combobox.1", Link:=False _
        , DisplayAsIcon:=False, Left:=200, Top:=10, Width:=250, Height:=30)
    With cb.Object
        .List = A
        .Font.Size = 14
    End With
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: OLE-Objekte von: Rolf Beißner
Geschrieben am: 10.02.2005 08:49:22

Hallo Sepp,

vielen Dank für deine schnelle + hilfreiche Unterstützung.

Schönen Tag + herzliche Grüße aus Hessen
Rolf

PS
Aber kannst du mir verraten, warum der Aufruf
der beiden Prozeduren nicht funktioniert?!


Bild


Betrifft: AW: OLE-Objekte von: Josef Ehrensberger
Geschrieben am: 10.02.2005 09:01:41

Hallo Rolf!

Mit den Richtigen deklarationen, geht's auch hintereinander.

Ich weis aber nicht wo da der Vorteil liegen soll!

Sub combo_add()
    Sheets("Übungen").OLEObjects.Add(ClassType:="Forms.combobox.1", Link:=False _
        , DisplayAsIcon:=False, Left:=200, Top:=10, Width:=250, Height:=30).Select
        
combo_modify
End Sub
'Combobox-Eigenschaften zuweisen
Sub combo_modify()
    Dim cb As OLEObject
    Dim A As Variant
    A = Array("Bahnhof", "Zeil", "Römer", "Zoo")
    Set cb = Sheets("Übungen").OLEObjects("ComboBox1")
    With cb.Object
        .List = A
        .Font.Size = 14
    End With
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: OLE-Objekte von: Rolf Beißner
Geschrieben am: 10.02.2005 09:30:39

Hallo Sepp,

ich will dir ja nicht auf den Wecker fallen...

Die komplette modify-Prozedur sieht so aus

Sub combo_modify()
    Dim cb As ComboBox
    Dim A As Variant
    A = Array("Bahnhof", "Zeil", "Römer", "Zoo")
    Set cb = Sheets("Übungen").ComboBox1
    With cb
        .List = A
        .Font.Size = 14
        .BackColor = RGB(0, 128, 64)
        .ForeColor = RGB(255, 255, 0)
        .Top = Range("E10").Top
        .Left = Range("E10").Left
    End With
End Sub


Wenn ich jetzt "richtig", also 'cb' als OLEObject, deklariere,
steigt das Programm mit Fehler '438' aus.
Offenbar sind dann die Positionseigenschaften Top + Left
nicht mehr bekannt.

Wäre schön, wenn du dich noch mal meiner annähmst.

Herzl.Grüße
Rolf


Bild


Betrifft: AW: OLE-Objekte von: Josef Ehrensberger
Geschrieben am: 10.02.2005 09:52:43

Hallo Rolf!

Sub combo_modify()
    Dim cb As OLEObject
    Dim A As Variant
    A = Array("Bahnhof", "Zeil", "Römer", "Zoo")
    Set cb = Sheets("Übungen").OLEObjects("ComboBox1")
    With cb.Object
        .List = A
        .Font.Size = 14
        .BackColor = RGB(0, 128, 64)
        .ForeColor = RGB(255, 255, 0)
    End With
      cb.Top = Range("E10").Top
      cb.Left = Range("E10").Left
End Sub



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: perfekt, lieber Sepp - vielen Dank - Rolf von: Rolf Beißner
Geschrieben am: 10.02.2005 10:10:33

..


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Schließen ohne speichern"