Bonjour,
Si j'ai bien compris votre problématique, sans le code corrigé sans la gestion d'erreur :
Private Sub SpinButton1_SpinUp()
Dim Valeur As String
If ListTrBTS.ListIndex = -1 Then MsgBox "Vous n'avez pas séléectionné de ligne" : Exit Sub
If ListTrBTS.ListIndex = 0 Then MsgBox "Item déjà en haut de la liste", vbCritical: Exit Sub 'Si position de l'item = 0 alors
Valeur = ListTrBTS
ListTrBTS.RemoveItem ListTrBTS.ListIndex
ListTrBTS.AddItem Valeur, ListTrBTS.ListIndex - 1
ListTrBTS.Selected(ListTrBTS.ListIndex - 2) = True
End Sub
En effet lorsqu'un item est en haut de la liste son index est de 0, si aucun item n'est sélectionné l'index est de -1, or ici vous souhaitez retiré -2 à l'index de l'item sélectionné ce qui n'est pas possible car si son index initial est de 0, alors 0-2 = -2 ce qui n'est pas possible dans une liste, son index limitant étant de -1. Dans ce cas on test si l'item est en haut de la liste (2ème ligne en commentaire) et si c'est le cas alors on affiche un message.
Cdlt,