Icône de la ressource

utilisation de la molette souris pour scroller les controls scrollable dans feuille et userform 7.1

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

patricktoulon

XLDnaute Barbatruc
patricktoulon a soumis une nouvelle ressource:

utilisation de la molette souris pour scroller les controls scrollable dans feuille et userform - scroll control avec la molette de la souris

ce fichier contient le module de hooking pour la souris
pour pouvoir scroller avec la molette de la souris
cette version est entièrement autonome
le hooking s'arrête tout seul
les combobox deviennent auto repliable

fonctionne sur Listbox , ComboBox , Frame
dans une feuille ou un userform

En savoir plus sur cette ressource...
 
Bjr Patrick 🙂
1667462612908.png

🙂
 
Bonjour lionel
comme d'hab tu a 3 wagons de retard
dans la dernière version je n'utilise plus d'api pour les rectangles
donc là tu teste une version qui n'est pas la dernière que j'ai donné
 
@Usine à gaz oui tu a lu la dernière phrase ? 😉
pour info je vous montre tout
ma version avec VBE ouvert on voit la fonction dans son entièreté
a aucun moment la moindre erreur s'inscrit dans le debug
et le recall est automatique
et le CallNextHookEx doit être dans la gestion d'erreur et pas automatique!!!!

demo.gif
 
@Usine à gaz oui tu a lu la dernière phrase ? 😉
pour info je vous montre tout
ma version avec VBE ouvert on voit la fonction dans son entièreté
a aucun moment la moindre erreur s'inscrit dans le debug
et le recall est automatique
et le CallNextHookEx doit être dans la gestion d'erreur et pas automatique!!!!

Regarde la pièce jointe 1154180
tu as mis le bon fichier dans les ressources ? 🙂
 
patricktoulon a mis à jour utilisation de la molette souris pour scroller les controls scrollable dans feuille et userform avec une nouvelle entrée de mise à jour:

fonctionne en full api 32 /64 bits

Bonjour a tous
perso je préfère prendre des chemins simples

ce modèle en full api ne necessite plus le calcul de pane et autre panes(x).pointstopixels
seule les api windowfrompoint et getwindowrect demare le hook si un handle aivalable est retourné
j'ai ajouté la gestion des feuille figé qui bloque le scroll dans les panes >1

il n'y a plus qu'a glisser le module dans votre projet
et mettre ceci dans l'event mouse du control (Listbox , Frame , Combobox )
VB:
hookmouseX...

Lire le reste de cette entrée de mise à jour...
 
Bonsoir
le message d'erreur c'est quoi?
vous travaillez avec quelle version de windows et excel ?

si vous n'en dites pas un peu plus , je risque pas de faire quoi que ce soit
il faut faire un peu plus d'effort dans vos interventions sinon s'abstenir
et pour info ce fichier à été testé sur 32 et 64 bits
 
Bjr Patrick, le Fil, le Forum 🙂
Je viens de reprendre ton fichier dans les ressources.
Dès l'ouverture voilà le beug (même erreur que #post4):
1669185045971.png

Obligé de quitter Excel "sauvagement" avec le gestionnaire de tâches.
@+
🙂
 
Dernière édition:
Bonsoir
le message d'erreur c'est quoi?
vous travaillez avec quelle version de windows et excel ?

si vous n'en dites pas un peu plus , je risque pas de faire quoi que ce soit
il faut faire un peu plus d'effort dans vos interventions sinon s'abstenir
et pour info ce fichier à été testé sur 32 et 64 bits
Bonjour Patrick
message erreur : incompatibilité de type
Windows : 11 version 22H2
Office : 365 apps for entreprise

pardon pour cet oubli
alexis
 
re
bizarre que ce soit cette erreur 🤔😵
dans le doute
VB:
Function GetControlHandleByWindowFromPoint(ctl) As LongPtr
    Dim Hold As POINTAPI, clss$
    'Position curseur
    
    GetCursorPos Hold
    #If Win64 Then
       Dim hWnd As LongPtr, hWndp As LongPtr
        hWnd = WindowFromPoint(PointToLongLong(Hold))
    #Else
       Dim hWnd&, hWndp&
        hWnd = WindowFromPoint(Hold.X, Hold.Y)
    #End If
    Select Case True
    Case TypeOf ctl Is MSForms.ListBox Or TypeOf ctl Is Frame
        GetControlHandleByWindowFromPoint = hWnd
    Case TypeName(ctl) = "ComboBox"
        clss = Space$(255)
        hWndp = GetParent(hWnd)
        GetClassName hWndp, clss, 255
        If InStr(1, clss, "F3 MdcPopup") = 0 Then hWnd = 0    ' si c'est un popu alors
    Case Else: hWnd = 0
    End Select
    GetControlHandleByWindowFromPoint = hWnd
End Function
 
re
bizarre que ce soit cette erreur 🤔😵
dans le doute
VB:
Function GetControlHandleByWindowFromPoint(ctl) As LongPtr
    Dim Hold As POINTAPI, clss$
    'Position curseur
   
    GetCursorPos Hold
    #If Win64 Then
       Dim hWnd As LongPtr, hWndp As LongPtr
        hWnd = WindowFromPoint(PointToLongLong(Hold))
    #Else
       Dim hWnd&, hWndp&
        hWnd = WindowFromPoint(Hold.X, Hold.Y)
    #End If
    Select Case True
    Case TypeOf ctl Is MSForms.ListBox Or TypeOf ctl Is Frame
        GetControlHandleByWindowFromPoint = hWnd
    Case TypeName(ctl) = "ComboBox"
        clss = Space$(255)
        hWndp = GetParent(hWnd)
        GetClassName hWndp, clss, 255
        If InStr(1, clss, "F3 MdcPopup") = 0 Then hWnd = 0    ' si c'est un popu alors
    Case Else: hWnd = 0
    End Select
    GetControlHandleByWindowFromPoint = hWnd
End Function
Merci Patrick pour le code 🙂
Mais impossible à tester car le fichier ne me laisse pas la possibilité de tester...
Dès l'ouverture le beug surgit lol
et Obligé de quitter Excel "sauvagement" avec le gestionnaire de tâches.
🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour