Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Dudu2

XLDnaute Barbatruc
il faut les 3 tests
Non, déjà on peut ignorer 2007, plus personne tourne la-dessus.
De plus, SAUF EXCEPTION (lorsque la référence nom de la fonction est différence en 64bits et en 32 bits par exemple) ce n'est pas nécessaire. PtrSafe et LongPtr amènent la souplesse nécessaire.
 

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
@Staple1600, pour revenir au plantage, as-tu essayé le fichier du Post #143 ?

Je pense que la déclaration du Copymemory du code du Hook n'est pas bonne.
Ça marche mais ce n'est pas bon. Sauf quand ça crash chez @Staple1600 évidemment.

Le problème est que si on la corrige, le Scroll Up ne fonctionne plus !!!
Le code du Hook est à revoir !
 

Dudu2

XLDnaute Barbatruc
Tu me fais penser qu'il faut que je fasse aussi quelques courses aussi
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.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…