Faire monter et descendre ligne sélectionnée dans ListBox

Bonjour la communauté :) J'espère que vous allez bien.

Ci-joint mon fichier exemple dans lequel j'ai un userform contenant un listBox avec 2 spinButton.

Un des membres du forum m'a aidé à pouvoir me déplacer entre les lignes de la listbox en cliquant sur les spinButton.

Ce que j'aimerais faire maintenant c'est de pouvoir (et apprendre aussi par l'exemple car j'ai tant cherché mais ça me dépasse ...) : faire remonter et descendre la ligne sélectionnée dans la listBox moyennant les spinButon.

Merci beaucoup pour votre collaboration.

Me

Bonjour,

J'ai complètement changé le code qui s'exécute avec spinup et spindown, afin de déplacer l'élément sélectionné dans la liste, le résultat est en pièce jointe.

Un peu comme quand on cherche à déplacer un élément dans un tableau, je stocke en mémoire la valeur que l'on veut déplacer, je déplace la valeur de l'endroit ciblé à l'endroit où la valeur sélectionnée se trouve, puis je remplace la valeur de l'endroit ciblé par la valeur stockée en mémoire, on se retrouve donc bien avec notre valeur qui s'est déplacée. Je change ensuite la ligne qui est sélectionnée pour que ça suive la valeur que l'on déplace, et le tour est joué.

Merci bien Ausecour ça marche parfaitement sur la ListBox ... sauf que, cerise sur le gâteau j'aimerais que sur le tableau source (la feuille Excel) ça s'actualise dans le nouveau ordre des cellules déplacées !

Peut etre une solution c'est de créer une variable tableau mémoire qui a comme source la ListBox puis la coller dans la feuille Excel ... comment ça se fait ça stp ?

Me

Est-ce que ça a besoin de s'actualiser en temps réel? ou bien est-ce que ça suffit si après l'appui d'un bouton pour valider ça les place comme dans la liste?

oui ça suffit que ça les placer comme dans la liste sur un seul clique à la sortie du formulaire par exemple. Mais ... pourquoi en fait ce n'est pas toute la ligne qui se déplace dans la listbox ? Y a que la 1ère colonne qui bouge.

Bonjour,

Parce que je n'ai géré que la première colonne de la liste, pas les autres.

Au final je ne peux pas juste mettre à jour la position après avoir fermé le formulaire, parce que la modification de la ligne se fait déjà directement sur la feuille, donc j'ai suivi cette logique.

Il faut fermer le formulaire pour mettre à jour l'affichage de la feuille.

Merci Ausecour pour votre aide si enrichissante. Ça m'a permit de comprendre comment désigner les lignes et les colonnes sur un listbox entre autres.

A la prochaine :)

Me

Rechercher des sujets similaires à "monter descendre ligne selectionnee listbox"