Autres toutes versions tester le scrool avec la roulette sans passer par un hooking en addressof

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
Bonjour a tous
la principal raison des crash excel quand on utilise le hooking de la souris pour avoir le mouse wheel(la roulette)
c'est que le looping avec le (CallnextHook)est asynchrone avec le captage du message de la souris
donc quand une erreur se produit(on va trop vite ou autre)
le looping lui continue parfois au moins une fois même en erreur
résultat comme on déplace le block type du message en mémoire ça crash

je vous propose de tester ceci
ici on va rester dans un do/loop vba classique et le message de la souris sera récupéré par un peekmessage
si il y a une erreur (du au message de la souris non conforme) normalement on a une erreur vba classique
et donc le do/loop est interrompu
donc pas de relance avec un message de la souris erroné donc pas de crash
Vous constaterez que j'augmente l'allocation de la mémoire aussi (64 bits double (longlong ou longPtr))(+2&)

d'autant plus que la dans cette démo je met tout dans le userform
ce qui n'est pas possible avec un code de hooking bien entendu
et ça peut avoir un avantage lorsque l'on veut distribuer un interface(userform) sans devoir l'accompagner de x modules

toujours pareil pour déterminer le rectangle je me sert de ma fonction perso du calendar que j'ai modifié pour ce besoins
donc testez et si ça fonctionne je ferais une ressource au propre

merci d'avance pour votre participation

j'en connais un qui vas ouvrir grand les yeux 🤣

Patrick
 

Pièces jointes

Solution
Bonjour @jurassic pork , @Dudu2 , @Nathe
j'ai mis le controlrelease en optionnel dans la démo (fonctionne aussi dans userform)
j'en ai profité pour mettre un multipage
et dans la page 1 du multipage j'ai mi un label violet
et c'est lui qui pilote le scroll de la page
comme ca on peut mettre un fond sur chaque page vu que ce control n'a pas de propertie backcolor
bien évidemment j'ai ajouté le textbox
dans cette démo donc on a le controlrelease optionnel
et le scroll piloté par un autre control
voila comme ça on est au même niveau que la V 3.0 avec iaccessible (All control working)

patrick
bon j'ai redemarer le portable installé 2007
et j'ai testé bien entendu il y a des erreur mais l'events est bien déclenché
demo.gif

donc tu a vraiment un soucis avec ton 2007
 
l'ultime version qui fonctionne partout
10 pages de discussions
des tests dans tout les sens
pour ma part des 10 aines de tests si c'est pas des centaines

et pas un seul crash ou whiteScreen

vous pouvez dire ce que vous voulez mais vous trouverez ça nul part ailleurs
PAS DE HOOKING!!!!!!
PAS D'USINE A GAZ
aussi fluide que si c’était build
et ça s'appelle @jurassic pork et @patricktoulon
 

Pièces jointes

Dernière édition:
l'ultime version qui fonctionne partout
10 pages de discussions
des tests dans tout les sens
pour ma part des 10 aines de tests si c'est pas des centaines

et pas un seul crash ou whiteScreen

vous pouvez dire ce que vous voulez mais vous trouverez ça nul part ailleurs
PAS DE HOOKING!!!!!!
PAS D'USINE A GAZ
aussi fluide que si c’était build
et ça s'appelle @jurassic pork et @patricktoulon
Merci et bravo à vous 2 pour le boulot, je cherchais justement comment améliorer l'ergonomie d'un de mes projets grâce au scrolling de la molette. Ça fonctionne nickel !!!
 
Bonjour à tous,
Bon boulot Patrick, testé sous Windows 10 64bits et Office 32bits, et approuvé.
N'étant pas adepte des variables publiques j'ai juste encapsulé la variable bLooping.
As-tu remarqué que sur le contrôle page si le curseur est sur un contrôle image ça ne roule plus ? 🙄

Testé dans une autre application, aussi avec succès. Donc module mis de coté avec mes modules favoris.

p.s. J'ai déjà testé l’ancienne version sous Windows 11 et Office 365 64bits, je vais tester celle-là.
 

Pièces jointes

re
bonjour @valtraze et merci
oui j'avais remarqué
mais c'est un dilemme
si je fait comprendre au moteur que si je suis sur le multipage et que je passe sur l'image ou tout autre control
il continue de scroller le multipage
ça me priverait tout simplement de scroller une éventuelle listbox ou combobox dans un multipage
tu vois le dilemme
c'est là ou la version avec windowfrompoint est mieux mais en 64 avec le copymemory de conversion du pointapi en longlong ca la rend bancale et provoque des crashs excel
😉
 
Hello,
bon j'ai réussi à résoudre mon problème d'utilisation d'Excel 2007 : c'était clairement un problème avec FM20.dll (la dll des msforms) alors soit une mise à jour de sécurité ou alors le fait que j'ai une autre version d'office (office 2010) installée dans mon Win 7 SP1. Finalement j'ai installé le Excel 2007 dans une autre virtualBox cette fois-ci avec Windows 10 comme OS. Cela fonctionne sauf que j'ai du espace pile insuffisant sur une listbox dans une feuille et avec la version ultimate j'ai le scroll formulaire qui n'est pas inhibé pendant le scroll combobox (j'ai pas ce phénomène avec l'ancienne version). ça le fait aussi avec un Excel2021 sous Windows 11 :
ScrollCombo.gif


Ami calmant, J.P
 
Dernière édition:
re
Bonjour @jurassic pork quand elle est developpée la combo ne se replis pas toute seuledans le userform
on y peut rien tant qu'un autre control n'a pas le focus
par contre des que tu passe sur le userform c'est lui qui est scrollé c'est normal
dans la feuille je ne sais pas pourquoi ça te fait ça
la version ultimate
et comme je n'aime pas jeter la version avec windowfrompoint qui elle avec le 64 a parfois des erreurs memoire insuffisante

après quand tu dis que ça te le faisait pas avec l'ancienne version je ne sais pas de la quelle tu parle

les deux versions en piece jointe
 

Pièces jointes

Pour le problème de pile insuffisante : comme apparemment je ne peux pas faire de mise à jour d'Excel 2007 dans windows 10 , j'ai piqué le fichier FM20.dll de mon office 2016 Windows 11 et je l'ai mis dans mon Windows 10 et je n'ai plus l'air d'avoir espace pile insuffisant quand je scrolle une listbox dans une feuille dans excel 2007.
Et l'autre problème ça le faisait aussi avec l'ancienne version mais je n'avais pas fait attention.
 
Dernière édition:
- 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

Discussions similaires

P
Réponses
1
Affichages
834
P
Retour