XL 2019 Molette Scroll sur ListBox

  • Initiateur de la discussion Initiateur de la discussion gg13
  • Date de début Date de début

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 !

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

Dès l'ouverture :
1667299181599.png
 
@Usine à gaz,
Et oui bien sûr. Il faut que je récupère l'erreur pour le signaler car il faut évidemment:
Menu Outils d'Excel -> Macro -> Sécurité -> Onglets Sources fiables -> Cocher "Faire confiance au projet Visual Basic".
C'est une condition pour utiliser le bidule en 64Bits. En 32Bits, j'ai testé, et le problème ne se pose pas.

@patricktoulon,
Non ce n'est pas une histoire de sélection. C'est dû aux temporisations que j'ai faites. Je vais vérifier sur mon LapTop 32 bits.
 
non je pense qu'il ne faut pas insister
visiblement les différences entre versions avec leur propre gestion MDI des fenêtres qui diffèrent de plus en plus de l'une à l'autre
sans parler de je ne sais quelle temporisation quelconque et autre astuce qui marchent aujourd'hui et ne fonctionneront plus demain
il faut trouver un moyen de s'en passer handle window et tout i cointi
sinon ça va devenir une usine à gaz le module scroll et il faudra constamment revenir dessus
j'ai trouvé un moyen de m'en passer je vous livre ce soir ma dernière version sans api window seule les api hook et avec l'approximation bottom de la combobox corrigé
patientez: là je pars à la campagne prendre un bol d'air frais je bosse pas aujourd'hui donc j'en profite
 
@Usine à gaz,
Merci pour ta confirmation. Dans ce fichier j'ai ajouté le contrôle de l'accès au projet VBA avec le cas échéant (si pas autorisé) un affichage de la boite de dialogue.

Sur mon Windows 10 + Office 2016 32 bits petite CPU, tout fonctionne bien. Le 1er Scroll peut mettre un peu de temps à s'établir (0.5 à 2 secondes). La souris apparait en cercle et durant cette période le Scroll dans le Control n'est pas établi. Mais ce n'est pas un souci.
 

Pièces jointes

Pour ne pas solliciter la Sécurité des Macros, je vais fermer la fenêtre par l'API dans la prochaine version.
Le problème c'est que le nom de la fenêtre dépend du langage. Faudrait au moins traiter français "Microsoft Visual Basic pour Applications" et l'anglais "Microsoft Visual Basic for Applications" (?) ou ne rechercher que sur "Microsoft Visual Basic".
 
@Usine à gaz,
Merci pour ta confirmation. Dans ce fichier j'ai ajouté le contrôle de l'accès au projet VBA avec le cas échéant (si pas autorisé) un affichage de la boite de dialogue.

Sur mon Windows 10 + Office 2016 32 bits petite CPU, tout fonctionne bien. Le 1er Scroll peut mettre un peu de temps à s'établir (0.5 à 2 secondes). La souris apparait en cercle et durant cette période le Scroll dans le Control n'est pas établi. Mais ce n'est pas un souci.
Re-Dudu2 :
Tout fonctionne également sur ce fichier 🙂
 
@Usine à gaz et tous les accros qui continuent à suivre cette histoire de fous.

Oui, l'aspect Scroll est Ok maintenant 32 et 64 bits, sauf peut-être chez @patricktoulon, mais ça m'étonne parce que je n'utilise plus du tout les API pour déterminer les zones de Scroll et si y a bien un truc qu'on identifie avec certitude c'est la ListBox ActiveX. Mais bon... Faudrait une config Office 2013 pour vérifier.

La question est le contournement du bug Excel qui fait qu'en 64Bits, si la fenêtre VBA Project est ouverte ça va faire planter Excel à un moment donné + ou - long du Scroll d'un Control.

Ce que j'ai fait pour fermer la fenêtre du VBA Project:
A intervalles de 10 secondes minimum, pour ne pas en faire trop:
- Directement si <Accès approuvé au modèle d'objet du projet VBA> est coché,
- Indirectement sinon, et c'est encore une galère car j'ai tout essayé de l'API (DestroyWindow, PostMessage) y a toujours un truc qui va pas bien. Je suis passé par une méthode basique consistant à afficher la fenêtre et à la fermer, ce qui, au passage, permet d'indiquer à l'utilisateur que ça a été fermé. Mais j'aurais préféré une méthode directe.
 

Pièces jointes

@Usine à gaz et tous les accros qui continuent à suivre cette histoire de fous.

Oui, l'aspect Scroll est Ok maintenant 32 et 64 bits, sauf peut-être chez @patricktoulon, mais ça m'étonne parce que je n'utilise plus du tout les API pour déterminer les zones de Scroll et si y a bien un truc qu'on identifie avec certitude c'est la ListBox ActiveX. Mais bon... Faudrait une config Office 2013 pour vérifier.

La question est le contournement du bug Excel qui fait qu'en 64Bits, si la fenêtre VBA Project est ouverte ça va faire planter Excel à un moment donné + ou - long du Scroll d'un Control.

Ce que j'ai fait pour fermer la fenêtre du VBA Project:
A intervalles de 10 secondes minimum, pour ne pas en faire trop:
- Directement si <Accès approuvé au modèle d'objet du projet VBA> est coché,
- Indirectement sinon, et c'est encore une galère car j'ai tout essayé de l'API (DestroyWindow, PostMessage) y a toujours un truc qui va pas bien. Je suis passé par une méthode basique consistant à afficher la fenêtre et à la fermer, ce qui, au passage, permet d'indiquer à l'utilisateur que ça a été fermé. Mais j'aurais préféré une méthode directe.
Tout fonctionne bien... super 🙂
 
bonsoir bonsoir 😀

Pour ne pas solliciter la Sécurité des Macros, je vais fermer la fenêtre par l'API dans la prochaine version.
Le problème c'est que le nom de la fenêtre dépend du langage. Faudrait au moins traiter français "Microsoft Visual Basic pour Applications" et l'anglais "Microsoft Visual Basic for Applications" (?) ou ne rechercher que sur "Microsoft Visual Basic".

je me demande ce que tu va chercher sincèrement
mais quel rapport cela peut il avoir????
entre le scroll et l’accès sécurisé aux modules ou quel que soit une supposée fenêtre VBA

et en plus tu dis ne plus te servir des apis ?😳
alors quel rapport t???

avec les api WIN je veux bien comprendre que la gestion MDI de fenêtre diffère un peu sur 365
et encore cela je n'en suis pas sur !!! ;mais sans api du vba c'est du vba et c'est le même pour tous

je pense que tu cherche tout azimut mais a un moment donné il faut se recentrer sur le vrai problème
 
sur 2016 en 32 ca ne fonctionne pas non plus même bug
On doit pas avoir le même 2016 32Bits (mon Laptop) car 2016 64Bits c'est mon Desktop.
Et j'ai testé sur les 2 évidemment.

mais quel rapport cela peut il avoir????
entre le scroll et l’accès sécurisé aux modules ou quel que soit une supposée fenêtre VBA
Je pense que tu n'as pas suivi. Je vais pas te refaire l'histoire, relis les posts.

il faut se recentrer sur le vrai problème
J'ai un fichier qui me donne satisfaction. Et pas qu'à moi.
J'attends toujours le tien.
 
ben oui il te donne satisfaction j'en convient
mais chez moi sur 2013 et 2016 32 non donc là déjà walouh!!
et je n'ai pas besoins de relire quoi que ce soit
si ça fou en l'air quoi que ce soit dans le vba project et que tu est obligé de gérer je ne sais quelle erreur qui normalement n'a rien a voir avec ça c'est que c'est pas bon

où tu a vu toi qu'il fallait activer l’accès approuvé au projet blablabla
pour faire marcher une macro qui n'a rien a voir avec les VBcomponents
je ne sais pas si tu te rends compte mais c'est grave
tu coche ça
et par macro tu peux enlever ajouter des modules par vba et j'en passe et des meilleures
demain tu trouve une autre merdouille tu fais quoi ? tu débloque quoi?
a un moment donné je le redis il faut réfléchir dans le bons sens
1667331410935.png
 
Ça marche pas chez toi ? Ouais peut-être ! Je ne crois qu'aux tests et j'en ferai sur 2013 à l'occasion.
Je sais ce que j'ai fait et pourquoi je l'ai fait.
Toi, tu baratines pour critiquer, c'est ce que tu fais de mieux, mais tu n'apportes strictement aucune solution.
Il est où ton fichier ?
 
- 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