Salut
C'est dommage parce que le EnsureVisible sur un Item est justement très pratique pour cela.
Oui, par les APIs ont peut tout faire.
Oups, j'étais en train d'écrire et je m'aperçois que tu parles d'une ListBox et pas ListView.
Si tu as la possibilité (*) d'utiliser une ListView à la place, c'est beaucoup plus souple.
(*) Fichier MSCOMCTL.ocx présent sur toutes les machines depuis XP
Ce doit être une histoire de SendMessage vers la ListView avec une constante commençant par LVM_ (ou EM_) qui doit contenir le mot Scroll : Une petite recherche rapide dans ApiViewer pour trouver une constante comme ça et, ... Oui : LVM_SCROLL me parait tout indiqué.
Un petit tour de Google ou Bing avec "vb6 sendmessage lvm_scroll" et on doit bien trouver des bouts de code à étudier.
Par contre pour la ListBox, à priori les constantes commencent par LB_ mais aucun ne me met la puce à l'oreille.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Merci. Oui en effet c'est plus simple avec une listview. Mais dans la macro excel dont je dispose, je n'ai pas le droit de tout modifier. Ca fait un moment je cherche à utiliser les API pour déplacer le curseur de la scrollbar d'une listebox. Mes utilisateurs ne veulent pas d'un scroll par la listindex mais bien par le curseur du scrollbar. J'ai fait plusieurs essais via sendmessage mais sans succès. Voir mon précédent post :
http://www.vbfrance.com/forum/sujet-VBA-SENDMESSAGE-LISTBOX_1458747.aspx Si vous avez idée pour résourdre mon problème précédent, ça réglerait mes deux posts.