805 Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k Punkte)
Hallo,

ich möchte in einer listbox das markierte Element farbig markieren. Wie kann ich das abfragen und dann entsprechend markieren?
Danke für euren Tipp.
Gruß A.

9 Antworten

0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Das habe ich schon mal erfolglos probiert:
[code]For i = 1 To UserForm2.ListBox1.ListCount
        If UserForm2.ListBox1.Selected(i) = True Then UserForm2.ListBox1.List(i).ForeColor = RGB(255, 100, 0)
    Next[/code]
...??
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,

ich habe lange recherchiert und bin zu der Auffassung gelangt, daß es gar nicht möglich ist, ein einzelnes Item in einer ListBox mit einer anderen Schriftfarbe zu versehen. Das sollte dazu dienen, sichtbar zu machen, welches Item bereits einmal angeklickt wurde.
Wenn das tatsächlich nicht geht, stellt sich die Frage, ob man dann wenigstens das einmal ausgewählte Item aus der ListBox entfernen kann, so daß es im weiteren Verlauf nicht mehr sichtbar ist??
Hat jemand einen Tipp?
Danke und Gruß
A.
0 Punkte
Beantwortet von
Hallo Andreas .-)

Nimm doch ein Häckchen :-)

Font.Name = "Marlett"
Chr$(97)

Gruß Nighty
0 Punkte
Beantwortet von
Hallo Andreas .-)

Ab einer bestimmten Excelversion kannst du im Entwicklermodus der Listbox Farben ändern(unter Format).

Weiss aber nicht ab welcher,mein Excel 2000 hat das noch nicht.

Gruß Nighty
0 Punkte
Beantwortet von
Hallo Andreas .-)

Ob allerdings einzelne Element änderbar sind,kann ich nicht prüfen(zu alte Excel Version)

Gruß Nighty
0 Punkte
Beantwortet von
Hallo Andreas .-)

oder
gute Vba Kenntnisse vorrausgesetzt

Nutze das Selectionsereigniss und erstelle entsprechende Routine
Für die Auswahl nutze den Cirkelbezug

oder erstelle ein neues Klassenmodul

ob sich der Aufwand allerdings lohnt,für ein bischen Farbe :-)

Gruß Nighty
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo nighty,

ich habe Excel2013, da geht es nicht. Die Idee mit dem Häckchen ist nicht schlecht!
Danke und gruß A.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Andreas,

oder wenn du die ausgewählten Einträge beim Anklicken löschen willst, dann so:
[code]Private Sub ListBox1_Click()
Dim lngIndex

With Me.ListBox1
     'Index des ausgewählten Elements in Variable schreiben
     lngIndex = .ListIndex
     
     'Auswahl aufheben, da sonst ein Unspecified Error auftauchen kann
     .Selected(lngIndex) = False
     'Item löschen
     .RemoveItem lngIndex
        
End With
 
End Sub[/code]
Der Code funktioniert allerdings nur, wenn die Listbox nicht über Rowsource gefüllt wurde.

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.,
das ist sie beste Lösung! Klappt wunderbar und löst mein kleines Problem auf due beste Weise. Vielen Dank!
Viele Grüße A.
...