Défilement données ListBox

Défilement données ListBox - VB/VBA/VBS - Programmation

Marsh Posté le 26-10-2012 à 22:33:19    

Bsr à tous.
 
Aprés l'affichage de mon UserForm1 et le chargement des données de la ListBox1 qu'il contient, je souhaite faire descendre automatiquement ces dernières de 10 lignes. Comme si je faisais descendre manuellement la barre verticale présente sur le côté droit de la ListBox1.
 
Quelqu'un peut-il m'aider svp. Je n'arrive pas à coder cette instruction ?
Quelle ligne de code programmer-vous pour :
- faire descendre le contenu de la ListBox1 de 10 lignes ;
- ou rehausser le contenu au niveau de la première ligne de la ListBox1 ?
 
Merci d'avance.
 
Alain.


Message édité par Elmoricq le 30-10-2012 à 16:01:18
Reply

Marsh Posté le 26-10-2012 à 22:33:19   

Reply

Marsh Posté le 30-10-2012 à 11:52:18    

Bonjour,
 
Je ne sais pas si tu a trouvé depuis mais :
 
ListBox1.TopIndex = 10
 
devrait faire ce que tu souhaite.


Message édité par pvclunacy le 30-10-2012 à 11:55:10
Reply

Marsh Posté le 30-10-2012 à 22:48:09    

Super pvclunacy
 
Cela fonctionne conformément à mes attentes. En revanche, connais-tu le code pour aller dans l'autre sens ? J'imagine que cela doit pouvoir se faire ! En affectant une valeur négative dans le code : ListBox1.TopIndex=-3 par exemple, je ne reviens pas vers les données présentes en haut de ma liste.
 
Merci de ta collaboration.
 
Bsr.
 
AlainLi

Reply

Marsh Posté le 31-10-2012 à 07:15:20    

Bonjour,
pour faire ça, je pense qu'il faut récupérer l'item sélectionné et mettre le TopIndex = itemActif - TaValeur
ListBox1.TopIndex = ListBox1.ListIndex - 3
 
Je n'ai pas testé donc à voir.
Attention aussi à gérer l'erreur dans le cas où le ListIndex est inférieur à la valeur que tu lui retranches.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
Reply

Marsh Posté le 31-10-2012 à 11:37:22    

En fait TopIndex indique à la listbox le numéro d'index de la ligne a mettre en haut du listbox à l'affichage, si tu met 10, l'élément d'index 10 sera le premier affiché, si tu met 5, l'élément 5 sera le premier affiché etc...
 
Si tu veux remonter de 3 lignes, n'affecte pas -3, mais retire 3 :
 
ListBox1.Topindex -= 3
Ceci affichera le 7eme élement en premier si tu était au 10.
Comme le dit oovaveoo, attention à gérer les dépassements.

Reply

Marsh Posté le 31-10-2012 à 22:42:46    

Bonsoir et merci les gars pour vos orientations et la célérité de vos réponses.
Je vais tester vos recommandations dès que possible.
Merci encore !
 
Bsr.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed