A nouveau,
Juste ce qu'il faut, ce n'est pas changer l'ordre mais mettre la sélection actuelle visible en haut de la listbox (car elle est très longue et mon item est parfois tout en bas)
En fait ce que tu recherches est un accélérateur. Comme un scroll (ascenseur) rapide qui peut t'amener sur des paliers différents rapidement.
Donc, il faut juste modifier la macro évènementielle et préciser l'index cherché.
Je reprends les données postées hier à 20:04. En augmentant la source à 20 items pour la zone de liste nommée ListBoxCed.
Au début la zone de liste est ainsi
On souhaite que ce soit à partir de l'item15 qu'on recherche soit ce dernier soit des éléments assez proche de celui-ci en dessous.
Pour cela, on change la valeur en K3, en tapant 15. L'item15 se retrouve alors en haut de liste.
Puis un clic (obligatoire) sur l'item15 ou sur l'un des items plus bas.
Ci-dessous la macro.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$K$3" Then
ActiveSheet.Shapes.Range(Array("ListBoxCed")).Select
Selection.ListFillRange = "$O$" & Target.Value & ":$O$20"
Range("I3") = Target.Value
Range("J3").Select
End If
End Sub
En I3, toujours la cellule liée de la zone de liste. Mais en J3 inscrire la formule =I3-1+K3.
C'est cette cellule J3 qui sera l'index. Pour revenir à l'item1, mettre 1 en K3 et clic sur l'item.