Clever-Excel-Forum

Normale Version: Ausgewählter Listoxeintrag soll oben in Listbox erscheinen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich habe in meiner Listbox1 sehr viele Einträge, so dass auf der rechten Seite der Scrollbar zu sehen ist.

Wenn ich nun einen Eintrag auswähle und dieser damit markiert ist, möchte ich, dass dieser ausgewählte

Eintrag ganz oben als erstes in meiner Listbox1 erscheint.

Wie mache ich das?

Danke für eure Hilfe.
Hallo,

wann soll das passieren?
Wenn du einen Eintrag ausgewählt hast, erscheint er doch aktuell in der Listbox - oder soll der markierte Eintrag auf der Userform oberhalb der Listbox eingetragen werden?
Oder soll der markierte Eintrag beim nächsten Aufruf der Listbox ganz oben als Erstes in der Liste erscheinen?
Wieso, wozu ? mit welchem Zweck ?
Der Zweck ist einfach die bessere (für mich bessere) Übersicht. Bei der ComboBox kannst du ja auch auswählen welcher ListIndex standardmäßig aus der von dir zusammengestellten Liste zuerst erscheint.

Sollte so etwas nicht möglich sein, wäre das für mich kein Beinbruch. Aber wenn so etwas gehen sollte, wüßte ich doch gerne wie.
Code:
Bei der ComboBox kannst du ja auch auswählen welcher ListIndex standardmäßig aus der von dir zusammengestellten Liste zuerst erscheint.

Bei der ListBox auch.
Hallo

mit dem Problem habe ich mich auch bei Anfragen mehrfach beschaeftigt, aber da spielt Excel nicht Problemlos mit !!
Frage:  waere es eine Alternative über der ListBox ein Label oder Textfeld zu setzen um dort den Wert anzuzeigen?

Hier eine Makro Variante die snb vielleicht noch verbessern kann??  Sie laeuft aber nur bedingt...!  Konkret, man kann im -eigenen Aufruf- den LişstIndex nicht löschen, auf -1 setzen!  Dann macht Excel von selbst was er will.  Wirft nicht angeklickte Daten nach oben.  Warum das so ist weiss ich nicht??  

Hat man 2 ListBoxen und setzt den ListIndex für ListBox1 in einem anderen Aufruf auf -1 klappt es offenbar!  Den simplen Trick hatte ich in einem Thread mit 4 ListBoxen nebeneinader benutzt.  Dadurch klappte das anklicken sauber. 

Zweites Problem, man kann bei diesem Code nicht den naechsten Wert der eine Zeile tiefer steht nach oben laden.  Das funktioniert nicht!  Nach oben kein Problem, den vorherigen Wert übernimmt Excel.  Aber nach unten klappt es nicht!  Nur bei der übernaechsten Zeile klappt es!  Ebenso ist amüsant das der ListIndex beim letzen Wert von Excel gelöscht wird.  Warum das so kurios funktioniert weiss ich nicht.  Vielleicht weiss es snb???  Einfach mal testen ....

mfg  Gast 123

Code:
'** Warnung:
'Nicht in den -ListIndex- eingeifen und ihn auf 0 oder -1 setzen
'dann veraendert Excel selbstaendig unkontrolliert den 1. Eintrag

Private Sub ListBox1_Click()
Dim Indx As Integer, Zahl, Wert As Variant
On Error GoTo Fehler
Application.EnableEvents = True
 'Wert + Index in Variable laden
  Indx = Me.ListBox1.ListIndex
  Zahl = Me.ListBox1.ListCount
  Wert = Me.ListBox1.Value
 'Wert einfügen, alten Eintrag löschen
  Me.ListBox1.RemoveItem Indx
  Me.ListBox1.AddItem Wert, 0
Fehler: Application.EnableEvents = True
End Sub
Hallo,

hätte noch eine andere wichtige Frage an euch.

Wie frage ich die Werte der Scrollbar bei einer ListBox ab?
@snb Lustig. Das Controlelement wird in dem Buch auf Seite 276 als eigenständiges Steuerelement besprochen. Davon habe ich nichts.
Mich würde interessieren wie ich dessen Wert abfragen kann, wenn dieses Controlelement bei vielen Einträgen der ListBox erscheint.
Hallo,

kannst Du mal beschreiben, mehr Hintergrund Info geben, was geanu Du erreichen möchtest?

Mit VBA wirst Du die Scrollbar Position nicht auslesen können, denke ich.  Vielleicht mit API und wenn es geht, dann wird der Code sicher aufwendiger.

Gib mal mehr Infos, dann kann man vielleicht alternative einfache Lösungen vorschlagen.
Seiten: 1 2