Benutzer mit den meisten Antworten
Office 2010 Excel: Listbox mit gelbem Hintergrund

Frage
-
Salü alle zusammen
In Excel 2010 habe ich über EntwicklerTools->Einfügen->Formularsteuerelemente eine Listenfeld(Formularsteuerelement) in meine Tabelle eingefügt.
Nun möchte ich dieses Feld mit einer Hintergrundfarbe versehen oder transparent machen. Wenn ich das Listenfeld bei gedrückter CTRL Taste anklicke und dann rechtsklick eigenschaften wähle, kann ich keine Farbe einstellen.
Mit vba habe ich gesehen könnte ich sagen:
ActiveSheet.ListBoxes(1).ForeColor = ActiveWorkbook.Colors(3)
Aber hier kommt der Fehler: Objekt unterstützt diese Eigenschaft oder Methode nicht.
Wie kann ich meiner Listbox einen gelben Hintergrund verpassen?
Vielen lieben Dank für Infos
Gruss Sabrina
Antworten
-
Hallo Sabrina,
die Hintergrundfarbe des Listenfeld-Steuerelements ist nicht einstellbar. Nur die ActiveX-Liste Steuerelement hat diese Möglichkeit.
Viele Grüße,
Bogdan
Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 21. November 2011 08:13
- Als Antwort markiert Bogdan Petru Roiu Donnerstag, 24. November 2011 08:40
-
Was mache ich falsch?
a.) sprichst Du nicht das Object (die Listbox) an, sondern nur den Container. Das OLEobject ist nur ein universeller Platzhalter für Excel (wie das Shape object) mit dem alle Objecte ansprechbar sind, das Object selber (die ListBox) bekommst Du über die Object Eigenschaft.
b.) Daher kannst Du auch nicht sicher sein das OLEobjects(1).Object überhaupt eine ListBox ist, könnte ja auch ein CommandButton oder sonstwas sein.
Sub Test()
Dim O As OLEObject
'Durchlaufe alle OLE Objecte
For Each O In ActiveSheet.OLEObjects
'Ist dieses eine ListBox?
If TypeOf O.Object Is MSForms.ListBox Then
O.Object.AddItem "Juhu"
End If
Next
End Sub
c.) Das Answers-Forum (in dem Du die Ausgangsfrage gestellt hattest) war schon das richtige, ich lese diesen Beitrag nur zufällig weil Du den Link dort gepostet hattest.
http://answers.microsoft.com/de-de/office/forum/excel?page=1&tab=all
Andreas.- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 21. November 2011 08:13
- Als Antwort markiert Bogdan Petru Roiu Donnerstag, 24. November 2011 08:40
-
Dann würde ich das eher über den Namen machen, denn die Reihenfolge kann sich durchaus mal ändern, z.B. wenn Du ein Element löscht und wieder hinzufügst.
Andreas.
Sub Test()
Dim LB As MSForms.ListBox
Set LB = ActiveSheet.OLEObjects("ListBox1").Object
LB.AddItem "Juhu"
End Sub- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 21. November 2011 08:12
- Als Antwort markiert Bogdan Petru Roiu Donnerstag, 24. November 2011 08:40
Alle Antworten
-
Hallo Sabrina,
die Hintergrundfarbe des Listenfeld-Steuerelements ist nicht einstellbar. Nur die ActiveX-Liste Steuerelement hat diese Möglichkeit.
Viele Grüße,
Bogdan
Ich bin gerne bei den Foren. Es kommt von Herzen. Es wird aber keine implizite oder sonstige Garantie für die geposteten Antworte / Informationen gewährt. Hier auch die Forenregeln.- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 21. November 2011 08:13
- Als Antwort markiert Bogdan Petru Roiu Donnerstag, 24. November 2011 08:40
-
Salü Bogdan
Vielen lieben Dank für Deine Antwort. Ich habe also alle Listboxen auf meinem Tabellenblatt entfernt und ActiveX Listboxen eingefügt.
Nun kann ich die Listbox wunderbar formatieren und auch Werte einfüge wenn ich sie direkt anspreche.
ActiveSheet.ListF1.AddItem (vText) 'ListF1 ist der Name meiner ListboxWas aber, wenn ich durch alle meine Listboxen durch iterieren will?
Folgendes habe ich probiert:
For vEck = 1 to 4
ActiveSheet.ListObjects(vEck).AddItem (vText)
ActiveSheet.ListBox(vEck).AddItem (vText)
ActiveSheet.OLEObjects(vEck).AddItem (vText)
ActiveSheet.Shapes(vEck).AddItem (vText)
Next vEckLeider führt das alles nicht zum Ziel. Methode nicht bekannt ist meisst die Fehlermeldung.
Was mache ich falsch?
Vielen Dank für Hinweise
Gruss Sabrina -
Was mache ich falsch?
a.) sprichst Du nicht das Object (die Listbox) an, sondern nur den Container. Das OLEobject ist nur ein universeller Platzhalter für Excel (wie das Shape object) mit dem alle Objecte ansprechbar sind, das Object selber (die ListBox) bekommst Du über die Object Eigenschaft.
b.) Daher kannst Du auch nicht sicher sein das OLEobjects(1).Object überhaupt eine ListBox ist, könnte ja auch ein CommandButton oder sonstwas sein.
Sub Test()
Dim O As OLEObject
'Durchlaufe alle OLE Objecte
For Each O In ActiveSheet.OLEObjects
'Ist dieses eine ListBox?
If TypeOf O.Object Is MSForms.ListBox Then
O.Object.AddItem "Juhu"
End If
Next
End Sub
c.) Das Answers-Forum (in dem Du die Ausgangsfrage gestellt hattest) war schon das richtige, ich lese diesen Beitrag nur zufällig weil Du den Link dort gepostet hattest.
http://answers.microsoft.com/de-de/office/forum/excel?page=1&tab=all
Andreas.- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 21. November 2011 08:13
- Als Antwort markiert Bogdan Petru Roiu Donnerstag, 24. November 2011 08:40
-
Lieber Andreas
Supervielen Dank für Deine Antwort. Den von Dir gezeigten Code kann ich an einer anderen Stelle sehr gut gebrauchen. Habe auch ziemlich verstanden was Du mir erklärt hast.
Aber die aktuelle Problemstelle habe ich damit noch nicht gelöst. Denn ich habe an besagter Stelle nicht die Möglichkeit alle Objekte zu durchlaufen. Sondern ich bin im Programmcode an einer Stelle an welcher ich eigentlich nur die Nummer (vEck) meiner OLE Listbox kenne welche ich "bearbeiten" muss.
Gibt es eventuell die Möglichkeit aus dem Befehl
ActiveSheet.ListF1.AddItem (vText)
das Element ListF1 in eine Variable zu packen? So dass ich dann zum Beispiel folgendes programmieren könnte:
vBox = "ListF" & cStr("1")
ActiveSheet.vBox.AddItem (vText)Sei herzlichst gegrüsst
Sabrina -
Dann würde ich das eher über den Namen machen, denn die Reihenfolge kann sich durchaus mal ändern, z.B. wenn Du ein Element löscht und wieder hinzufügst.
Andreas.
Sub Test()
Dim LB As MSForms.ListBox
Set LB = ActiveSheet.OLEObjects("ListBox1").Object
LB.AddItem "Juhu"
End Sub- Als Antwort vorgeschlagen Bogdan Petru Roiu Montag, 21. November 2011 08:12
- Als Antwort markiert Bogdan Petru Roiu Donnerstag, 24. November 2011 08:40