Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulette)

  • Initiateur de la discussion Compte Supprimé 979
  • Date de début

Dudu2

XLDnaute Barbatruc
Bonjour Danreb,
Effectivement, ces arguments sont des constantes ayant une portée Projet. Intéressant.
Ce n'est pas aussi pratique que des constantes Module qui auraient la même portée mais c'est déjà ça.
 

Pièces jointes

  • Arguments de compilation conditionnelle.xlsm
    20.7 KB · Affichages: 14
Dernière édition:

Dudu2

XLDnaute Barbatruc
Pour info, j'ai republié les 2 fichiers V3 du Scroll ComboBox et ListBox dans le message #88 en réduisant complètement la spécificité du Module_HookMouseV3 qui reçoit désormais en paramètre optionnel le nom de la fonction de détection de position de souris par rapport à l'objet (ainsi que la fonction associée accessoire de trace) et reste donc utilisable pour toutes les situations.
 

Dudu2

XLDnaute Barbatruc
J'ai republié le fichier VBA Scroll Souris en ListBox V0.xlsm dans le message #88 car le module Module_PixelsToPointsToPixelsV0 qu'il contient (bien utile en d'autres circonstances) contenait un bug (et oui ça m'arrive !) qui m'a bien surpris...

L'instruction If TypeOf <Object> Is UserForm se gamelle joyeusement si aucun UserForm n'est défini dans le Projet. Donc j'ai couvert cette situation.

J'ai aussi utilisé ce même Module_PixelsToPointsToPixelsV0 par exemple pour gérer le placement d'un MsgBox avec 2 fonctions MsgBoxPos() et MsgBoxPosOnObject() avec divers paramètres de positionnement. Je le joins pour illustrer l'affaire.

Edit: Tant qu'à faire autant ajouter le positionnement UserForm sur la même base...
 

Pièces jointes

  • VBA MsgBox avec position V0.xlsm
    51.2 KB · Affichages: 8
  • VBA Position UserForm & TextBox ou autre Objet V0.xlsm
    59.1 KB · Affichages: 10
Dernière édition:
C

Compte Supprimé 979

Guest
Salut Dudu2, bonjour à tous,

J'ai republié le fichier VBA Scroll Souris en ListBox V0.xlsm dans le message #88 car le module Module_PixelsToPointsToPixelsV0 qu'il contient (bien utile en d'autres circonstances) contenait un bug (et oui ça m'arrive !) qui m'a bien surpris...
Sauf que ta version ne fonctionne pas sur Office 2016 64bit :confused:

2020-05-31_18h10_14.png


J'ai republié une version qui semble fonctionner correctement en simplifiant le code

@voir
 

Dudu2

XLDnaute Barbatruc
Bonjour BrunoM45,
Merci pour l'info.
Je n'ai pas d'environnement Excel 64 bits pour tester. En l'occurrence, je suppose qu'il faut déclarer plHooking en LongPtr.
Ce que j'ai fait en republiant les fichiers de Scroll ComboBox et ListBox en Ce lien n'existe plus en espérant que cela corrige l'incompatibilié de type en mode 64bits.
Cordialement.
 

Le_Sage

XLDnaute Nouveau
Bonjour à tous !

J'étais très intéressé par cette fonctionnalité, évidemment...
Malheureusement, j'ai testé tous les classeurs téléchargeables, et tous font crasher Excel quelques secondes après le survol du combo...
De plus, juste avant le crash, le mouvement du pointeur est énormément ralenti et sacadé.

Pour info, je suis sous W10 64 Pro et Office 365 Business (dont je viens de m'apercevoir avec surprise et à l'occasion de ce problème que c'est une version 64bits).

Si des pistes existent ;)

Merci en tout cas pour ce partage qui, même s'il n'a pas fonctionné pour moi, s'avère d'une grande utilité ;)
 

Dudu2

XLDnaute Barbatruc
Bonjour,

Voici un fichier que je te propose de tester en 64 bits. J'aimerais aussi savoir si ça fonctionne puisque je suis en 32 bits.
Il contient une méthode originale de détection de la position de la souris par rapport à l'objet (ListBox) qui limite donc à 2 évènements à intercepter pour gérer le scroll.

Maintenant il y a d'autres propositions et notamment celle de patricktoulon qui peut-être t'en fera part.
 

Pièces jointes

  • VBA Scroll Souris en ListBox.xlsm
    66 KB · Affichages: 6
Dernière édition:

Dudu2

XLDnaute Barbatruc
En effet, ça plante à cause de plusieurs problèmes de compatibilité entre Long et LongPtr.
Faut aussi que je revoie toutes les déclarations des fonctions de l'API Windows et le step de scroll sous 64 bits qui semble plus sensible comme l'a indiqué patricktoulon.
Ceci dit, ces fonctions de Hook récupérées sur le Net et modifiées sont assez absconses et à vérifier sur 64 bits dont hélas je n'ai pas l'environnement pour tester.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 810
dernier inscrit
mohammedaminelahbali