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: 10

Usine à gaz

XLDnaute Barbatruc
Re

@Dudu2
Tu as vu le lien dans mon précédent message ?
Jm, dans ton lien on parle de la version

Version 2201 Build 16.0.14827.20198​

Chez moi, j'ai la version :
1667125769491.png

Certainement pour ça que je ne plante pas...
:)
 

Dudu2

XLDnaute Barbatruc
@Staple1600,
Bien sûr je l'ai vu mais je n'ai pas compris.
Use Win64 instead of VBA7 and Lenght is a Long, not LongPtr.
Non pour "Use Win64 instead of VBA7", sauf exception comme je l'ai indiqué avant.
VBA7 c'est pour différencier d'avec VBA6 (2007 et en dessous). Perso j'ignore VBA7 car je considère par défaut. Je ne fais plus les déclarations pour VBA6.

A partir de VBA7, ça accepte PtrSafe et LongPtr qui donnent la souplesse 64bits/32Bits. C'est l'intention.

Lenght is a Long, not LongPtr , je ne sais pas de quoi tu parles. Du dernier argument du Copymemory?
Alors je dirais que c'est bien possible, mais c'est pas sûr car LongPtr n'est pas propre aux pointeurs.
 

Dudu2

XLDnaute Barbatruc
Alors que la réponse dit qu'il faut le déclarer en Long
Mais d'où vient cette réponse ? Je n'ai pas compris. Quelle légitimité par rapport au document MicroSoft téléchargeable ici:
Qui dit:
Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As LongPtr)

Un LongPtr amène une souplesse (voir sa définition) qui en fait automatiquement un Long en 32 bits et un LonLong en 64 bits. Ce n'est absolument pas lié strictement à un Handle. C'est un type de donnée.
 

Dudu2

XLDnaute Barbatruc
Tu me fais penser qu'il faut que je fasse aussi quelques courses aussi
1667129685266.gif
;)
Et puis je vais essayer de faire fonctionner ce code de Hook (un truc abscons qui vient d'Internet) avec un Copymemory correctement déclaré pour éviter les crash du type de ce que tu as connu.
 

Statistiques des forums

Discussions
314 656
Messages
2 111 609
Membres
111 220
dernier inscrit
Elé0n0re