Défilement avec la roulette de la souris Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
scn68100
Membre habitué
Membre habitué
Messages : 127
Appréciations reçues : 2
Inscrit le : 9 avril 2018
Version d'Excel : 2016

Message par scn68100 » 20 septembre 2018, 09:22

Bonjour,
Pardonnez moi si ma question est "idiote" ….
J'ai trouvé sur le NET des solutions pour activer le défilement par la roulette de la souris dans des Listbox ou Listview
Mais ceci serra valable uniquement sur mon PC, ou incorporé au classeur, et du coup actif sur tout PC sur lequel on a enregistré ce classeur ?
Cordialement
Sauveur
Windows10 Professionnel 64 bit - Excel 2016 64 bit
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 20 septembre 2018, 18:46

Bonjour Sauveur,

ta question n'est pas idiote, et d'après moi, les solutions que tu as trouvées sur le Net marcheront sur n'importe quel PC qui dispose d'une souris dotée d'une molette ; car bien sûr, si c'est une très ancienne souris qui a juste 2 boutons et pas d'molette, alors même la meilleure solution logicielle n'y pourra rien !  ;;)

la prise en compte logicielle de la molette de la souris pour faire défiler la ListBox est incorporée au classeur, et sera active sur le PC d'une autre personne à qui tu passes ton fichier Excel, à condition qu'y'ait une souris à molette.

si ton copain a un Macintosh de table (non portable), j'crois bien qu'la souris a qu'un seul bouton et pas d'molette !  ::D :mrgreen: :twisted:

sur les ordinateurs portables, j'sais pas si le touchpad incorporé peut émuler une molette de souris, quelque soit le modèle.
(note : émuler, ça équivaut à une simulation logicielle)

dhany
Avatar du membre
scn68100
Membre habitué
Membre habitué
Messages : 127
Appréciations reçues : 2
Inscrit le : 9 avril 2018
Version d'Excel : 2016

Message par scn68100 » 21 septembre 2018, 08:30

Bonjour DHANY,
Merci pour ta réponse
Je vais faire le test, et ferai connaitre le résultat
Cordialement
Sauveur
Windows10 Professionnel 64 bit - Excel 2016 64 bit
Avatar du membre
scn68100
Membre habitué
Membre habitué
Messages : 127
Appréciations reçues : 2
Inscrit le : 9 avril 2018
Version d'Excel : 2016

Message par scn68100 » 21 septembre 2018, 15:16

Bonjour,
En fait, je n'ai pas trouvé la solution pour activer la roulette de la souris dans une ListBox ou une ListView !
Je vais donc poser la question
Cordialement
Sauveur
Windows10 Professionnel 64 bit - Excel 2016 64 bit
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 21 septembre 2018, 15:25

Bonjour Sauveur,

je te propose de lire mon post : viewtopic.php?p=654165#p654165

il contient un fichier où la molette marche dans une liste déroulante

dhany
Avatar du membre
scn68100
Membre habitué
Membre habitué
Messages : 127
Appréciations reçues : 2
Inscrit le : 9 avril 2018
Version d'Excel : 2016

Message par scn68100 » 22 septembre 2018, 09:52

Bonjour DHANY,
J'ai annulé mon autre message, c'est en fait un doublon avec cette discussion
Je n'arrive pas à exécuter le classeur
J'ai eut une erreur de compilation à l'ouverture - Mettre à jour pour 64 bit
J'ai tenté de corriger après recherche sur le NET (Le code d'origine est en commentaire)
'Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
'  (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
    (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
'Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
'  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare PtrSafe Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
'  (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
  (ByVal hwnd As Long, ByVal nIndex As Long) As Long
'Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
'  (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _
  (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
'Private Declare Function CallNextHookEx Lib "user32" _
'  (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare PtrSafe Function CallNextHookEx Lib "user32" _
  (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
'Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Mais j'ai alors d'autres erreurs ….
Le code est trop important pour que je puisse l'analyser
As tu un exemple plus simple ? Une UserForm avec juste une ListView et une ListBox où l'on peut faire du défilement avec la roulette de la souris ?
Merci d'avance
Cordialement
Sauveur
Windows10 Professionnel 64 bit - Excel 2016 64 bit
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 22 septembre 2018, 13:14

Bonjour Sauveur,

j'ai pas d'solution plus simple, mais essaye en remplaçant toute les lignes « Declare » par :
  Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" _
                              (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

  Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long

  Declare PtrSafe Function GetForegroundWindow Lib "user32" () As Long

  Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                         (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)

  Declare PtrSafe Function SetWindowsHookEx Lib _
                                    "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, _
                                                                        ByVal hmod As Long, ByVal dwThreadId As Long) As Long

  Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _
                                                ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long

  Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long

  Declare PtrSafe Function GetLastError Lib "kernel32" () As Long  ' Used this one to crack the problem.
si y'a des lignes en rouge, ne t'en préoccupe pas, et laisse-les.  :wink:

dhany
Avatar du membre
scn68100
Membre habitué
Membre habitué
Messages : 127
Appréciations reçues : 2
Inscrit le : 9 avril 2018
Version d'Excel : 2016

Message par scn68100 » 22 septembre 2018, 14:14

Merci
La ligne
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                         (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)

est refusée (Erreur de compilation) Je l'ai remplacée par
  Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
                         (ByVal Destination As Long, ByVal Source As Long, ByVal Length As Long)
mais j'ai ensuite une erreur d'incompatibilité de type
Cordialement
Sauveur
Windows10 Professionnel 64 bit - Excel 2016 64 bit
Avatar du membre
dhany
Passionné d'Excel
Passionné d'Excel
Messages : 6'898
Appréciations reçues : 694
Inscrit le : 3 octobre 2017
Version d'Excel : 2007 FR

Message par dhany » 22 septembre 2018, 14:24

essaye avec ce fichier de BrunoM45 (salut) :
MouseWheelHookV2a_64bit.xlsm
(33.66 Kio) Téléchargé 81 fois
si t'arrives pas à l'adapter à ton cas réel, essaye de contacter BrunoM45

dhany
Avatar du membre
scn68100
Membre habitué
Membre habitué
Messages : 127
Appréciations reçues : 2
Inscrit le : 9 avril 2018
Version d'Excel : 2016

Message par scn68100 » 22 septembre 2018, 15:17

Merci Mais je retrouve les mêmes erreurs
Je vais essayer de contacter Microsoft
S'il réponde, je rendrais compte
Cordialement
Sauveur
Windows10 Professionnel 64 bit - Excel 2016 64 bit
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message