[VBA] scroller une listebox par API

Résolu
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 - 10 août 2010 à 11:29
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 10 août 2010 à 16:39
Bonjour,
Comment scroller une listebox à l'aide d'API en déplacement le curseur de la scroll bar et pas l'index de la listebox ?

Scroller : faire défiler le curseur de la barre de défilement.

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 août 2010 à 16:39
Tiens, voilà de quoi assouvir ta curiosité avec <ce lien>
Le dernier problème sera de gérer les handles sous VBA ...
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
10 août 2010 à 14:58
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)
0
Philippe734 Messages postés 308 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 15 juin 2015 1
10 août 2010 à 16:05
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.
0
Rejoignez-nous