XL 2019 Molette Scroll sur ListBox

gg13

XLDnaute Occasionnel
Bonjour,

Je commence un nouveau projet pour lequel je devrai utiliser des ListBox et ComboBox.
Ces listes seront longues et je voudrais utiliser le scroll de la molette plutôt que les ascenseurs.

Après renseignement sur le site j’ai voulu utiliser ce post :
Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulette)

Je galère depuis 2 jours et malgré plusieurs essais je n’arrive pas à intégrer ces différentes macros, plusieurs messages d’erreurs ….
Je ne comprends pas tout.
Si vous pouvez m’aider un peu je vous remercie d’avance.

Je joins le fichier exemple avec les listBox .

GG13
 

Pièces jointes

  • NBA1.3.xlsm
    37.6 KB · Affichages: 9

Dudu2

XLDnaute Barbatruc
Bonjour @patricktoulon,

C'est sûr que c'est plus simple à gérer, beaucoup moins de code.
Le problème avec cette méthode c'est qu'Excel n'est pas toujours capable de gérer le déclenchement d'un évènement MouseMove si la souris passe trop vite.

Par exemple si, en partant de la ListBox sous Hook, la souris quitte rapidement le UserForm et/ou que la marge entre la ListBox et le UserForm est faible, l'évènement UserForm_MouseMove ne se déclenche pas et tu continues à Scroller la ListBox en ayant la souris dans la feuille.

Mais peut-être que cet inconvénient compense la simplicité de la mise en oeuvre.
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Patrick, le Fil, le Forum :)
Chez moi Office 365 :
1666867506448.png

1666867536650.png

:)
 

Eric C

XLDnaute Barbatruc
Bonjour le forum
Bonjour gg13

Je t'ai mis en application le scroll mis en ligne par notre BrunoM45 (que je salue ... J'espère que la température de son cerveau a baissé depuis hier soir... 🤣 ) pour la ListBox (Base_List), charge pour toi de reproduire pour le reste.
Bonne après-midi
@+ Eric c
 

Pièces jointes

  • NBA1.3.xlsm
    41.7 KB · Affichages: 21
Dernière édition:

gg13

XLDnaute Occasionnel
Bonsoir,
Merci pour cette réponse.
Désolé je n'ai pas pu répondre plus tôt.

A cette ligne de la macro erreur sur le mot Function.
Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long


Erreur de compilation avec comme message :
Le code contenu dans ce projet doit être mis à jour pour pouvoir être utilisé sur les systèmes 64 bits. Vérifiez et mettez à jour les instructions Declare puis marquez-les avec l’attribut PtrSafe.

Mon PC est un 64 bits, je ne sais pas comment rendre cette macro compatible.
Je pense que si c’est possible ce doit être assez compliqué.

Peut-être un XLdnaute connait la méthode ?????
Eric.C merci pour cette aide

Gg13
 

gg13

XLDnaute Occasionnel
Bonjour,
Toutes les déclarations passent avec cette modif, mais autre blocage sur la ligne ci-dessous
après clic sur la zone de liste

erreur de compilation incompatibilité de type

Sub Hook_Mouse()
If hhkLowLevelMouse < 1 Then hhkLowLevelMouse = SetWindowsHookEx(WH_MOUSE_LL, AddressOf LowLevelMouseProc, _
GetWindowLong(FindWindow("ThunderDFrame", ObjUSF.Caption), GWL_HINSTANCE), 0)

EricC , encore un grand merci si tu sais la solution, je ne connais pas du tout cette fonction.

GG13
 

Eric C

XLDnaute Barbatruc
Re le fil

@gg13 - Désolé mais trop pointu pour le petit joueur que je suis. Il va falloir attendre les grosses pointures.
Tout au long du post de référence, il y a des indications sur les utilisateurs de XL 64bits. A voir et surtout à lire.

Eric
 
Dernière édition:

gg13

XLDnaute Occasionnel
Encore GG13
Ce que je ne comprends pas c'est que ce programme du site (joint) fonctionne en 64 bits .Je ne sais pas trouver la difference.
J'ai essayé sans succés de l'adapter.
Merci encore
GG13
 

Pièces jointes

  • MouseWheelHook_v2_64bit.xlsm
    38.7 KB · Affichages: 4

gg13

XLDnaute Occasionnel
Bonjour,
Problème résolu et fonctionne sans bug.
Je joins la structure du fichier pour ceux qui sont intéressés par cette routine très utile.
Merci à ceux qui ont créé le fichier de base très complexe.
GG13
 

Pièces jointes

  • XLD - Scroll Mouse 64bit.xlsm
    45.4 KB · Affichages: 22

Dudu2

XLDnaute Barbatruc
Bonjour la liste,

Cette histoire de Scroll en ListBox est complexe, bien plus que le Scroll en ComboBox.
Je vais donc faire ma proposition originale et j'aimerais que tu fasses le test si tu veux bien avec le fichier joint, juste pour voir comment ça se passe chez toi.
Merci !

Edit: A noter qu'avec ce fichier, pour démarrer le Scroll, il n'est pas nécessaire de cliquer dans la ListBox. Mais il y a un peu plus de code (un module dédié) pour détecter si le curseur est sur la ListBox.

Edit: Fichier supprimé, voir plus bas.
 
Dernière édition:

Statistiques des forums

Discussions
312 211
Messages
2 086 295
Membres
103 171
dernier inscrit
clemm