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