XL 2019 Molette Scroll sur ListBox

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

  • NBA1.3.xlsm
    37.6 KB · Affichages: 11

Usine à gaz

XLDnaute Barbatruc
bon voila
la sub s'appelle releasepane elle permet de libérer les listbox dans les partie figées
la fonction defige et enleve le splitrow et splitcoloumn et le remet immediatement
comme c'etait
elle sont donc accessible des l'event mouse en passant dessus
par contre ta gestion de fenêtre cause des soucis avec les combo
c'est a dire le scroll fonctionne mais des que l'on sort de la combo et que qu'on sélectionne une cellule c'est une fenêtre autre quelconque ouverte derrier excel qui se met au first plan et ça bloque tout
j'ai tout essayé thisworkbook.activate etc.... rien n'y fait

en tout cas ca fonctionne mon astuce
il faut seulement le faire une fois avant bien sur ( dans le sheet activate par exemple)
apres c'est le unhookmouse qui la lance a chaque sortie de controls et réactive donc tout les autres


ma sub utilise 2 api
je n'arrive pas à déterminer la quelle est la plus efficace pour un lock screenupdating
l'api lockwindowupdate et l'api sendmessage
c'est pour éliminer le petit sursaut quand je defige et re fige

attention j'ai toujours ton erreur à la fermeture (je pense savoir pourquoi)
Regarde la pièce jointe 1154596
ton fichier 11 joint
Bonjour Patrick, Bonjour Dudu2, le Forum :)
Patrick ton fichier plante chez moi :)
 

patricktoulon

XLDnaute Barbatruc
Alors tu me crois maintenant @Dudu2 ?

@Usine à gaz
Bonjour Patrick, Bonjour Dudu2, le Forum :)
Patrick ton fichier plante chez moi :)
Bonjour et désolé lionel mais "ton fichier plante chez moi" ca veux rien dire
et c'est pas mon fichier , car ma version je ne la distribuerais pas avant de l'avoir testé sur 64 bits
si tu interviens viens avec des données précises (ou ca plante l'erreur,etc... etc...)
 

Usine à gaz

XLDnaute Barbatruc
Alors tu me crois maintenant @Dudu2 ?

@Usine à gaz

Bonjour et désolé lionel mais "ton fichier plante chez moi" ca veux rien dire
et c'est pas mon fichier , car ma version je ne la distribuerais pas avant de l'avoir testé sur 64 bits
si tu interviens viens avec des données précises (ou ca plante l'erreur,etc... etc...)
Ha ok, j'avais cru qu'il y avait ta fonction dedans :)
 

patricktoulon

XLDnaute Barbatruc
Ok donc chez toi il faut ajouter la manip des Panes à chaque fois.
C'est donc bien une différence 2013/2016 et/ou 32/64 Bits.
Mais bon, encore une fois ça change rien au fait que ce n'est pas implémentable.
non !!!! chez moi AVEC MON MODELE!!!! je le fait une fois ET C EST TOUT
CHEZ MOI AVEC TON MODELE (LE 11) je suis obligé de le refaire au unhookmouse car il y a des ratés pas tout le temps mais quand même

et ce n'est pas une question de version puisque sans la releasepane nous avons le même
problème au depart (avec ta version ou la mienne)

c'est bien une histoire de principe et de mécanique employée
 

patricktoulon

XLDnaute Barbatruc
testé et
BINGO !!!!!
comme ça si la feuille active c'est celle concernée on la lance des l'ouverture
on s'en fou il s'eteind tout de suite puisque la souris pas encore dessus
mais ça a pour effet de les activer toutes
VB:
Private Sub Workbook_Open()
'releasePanes
Call ControlScroll(Feuil2.OLEObjects("Listbox1").Object)
End Sub
et on vire le activate de la feuille

et on laisse le releasepanes au unhookmouse
et pas de soucis ca tourne
edit:
d'ailleurs même si la feuille n'est pas la bonne au demarrage ca marche quand même

autrement dit avec mon modèle je fait la même chose et je vire carément releasepanes
 
Dernière édition:

Dudu2

XLDnaute Barbatruc
Bonjour @patricktoulon,
Oui ça peut être intéressant. Y a des gars super pointus comme lui qui font des trucs bien originaux.
Mais d'une part il a dû fabriquer sa DLL car, dit-il, celle de Microsoft n'est pas très fiable.
Donc il faut se trimballer une DLL à enregistrer dans le projet. Pas très simplement portable, dommage !
D'autre par il parle d'ACCESS et je ne sais pas si ça fonctionne sous EXCEL.
 

Statistiques des forums

Discussions
315 085
Messages
2 116 074
Membres
112 650
dernier inscrit
badi44