Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulette)

  • Initiateur de la discussion Compte Supprimé 979
  • Date de début
C

Compte Supprimé 979

Guest
Bonjour à tous,

Suite à la demande de Fmiste concernant la possibilité de faire défiler le contenu d'une ComboBox

Je me suis aperçu qu'il n'y avait pas tellement de fil traitant ce sujet sur le forum :(
ou du moins je n'en ai pas trouvé concernant le terme "Mouse wheel"

Je mets donc ici à disposition, le classeur avec le code qui va bien :eek:

Cela pourra toujours servir à quelqu'un

Au plaisir
 

Pièces jointes

  • MouseWheelHookV2a.xls
    64.5 KB · Affichages: 2 583
  • MouseWheelHook_v2_64bit.xlsm
    42.2 KB · Affichages: 335
Dernière modification par un modérateur:

GeoTrouvePas

XLDnaute Impliqué
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Merci Bruno pour cette contribution !

Ça me servira forcément un jour, quand j'aurai enfin le temps de perfectionner mes applications ! ;)
 

Fmiste

XLDnaute Junior
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Cela m'a énormément servi, et je t'en remercie :)
 
C

Compte Supprimé 979

Guest
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Messieurs,

Vous m'en voyez ravi
absolute.gif
DarkAngel_pompomgirl1.gif

A+
 
Dernière modification par un modérateur:

Misange

XLDnaute Barbatruc
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Super pratique ! ca va autrement plus vite que de faire défiler l'ascenseur. Merci Bruno !
 
C

Compte Supprimé 979

Guest
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Super pratique ! ca va autrement plus vite que de faire défiler l'ascenseur. Merci Bruno !
Salut Miss, peut-être un fichier à mettre également sur ton site ;)

A+
 

ya_v_ka

XLDnaute Impliqué
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Hello tous

Je n'ai pas bien compris tout le fichier, mais ça fonctionne du tonnerre.

Par contre je trouve qu'il y a beaucoup à copier et me demande s'il ne serait pas possible d'en faire une macro complémentaire, qui, une fois enregistrée, ne s'appellerai plus que par quelques rares lignes de code ?

Qu'en pensent les pros ?

Ya'v
 
C

Compte Supprimé 979

Guest
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Salut Ya_v_ka ;)

Hello tous
Je n'ai pas bien compris tout le fichier, mais ça fonctionne du tonnerre.
Content que cela te plaise ;)

Par contre je trouve qu'il y a beaucoup à copier et me demande s'il ne serait pas possible d'en faire une macro complémentaire, qui, une fois enregistrée, ne s'appellerai plus que par quelques rares lignes de code ?
Qu'en pensent les pros ?
J'y ai bien pensé, mais plusieurs problèmes se posent et risque de se poser :

1) des variables public sont définies dans le module et ne peuvent plus être utilisées en ".xla"

2) en ".xla" le code est moins facilement "transportable", car il faut commencer par installer la macro complémentaire
pour pouvoir utiliser l'appli développée

3) Il n'est pas difficile de renommer le module en "M_MouseWheelHook" par exemple et de le déplacer dans un nouveau classeur

Au plaisir
A+
 

lelectricien

XLDnaute Junior
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Bonjour tout le monde,

Et merci à BrunoM45 pour cet élément tant recherché, mais je me suis rendue compte d'une toute petite chose de rien du tout:

Si la liste pour le combobox fait beaucoup de lignes (ex:1000 ligne) et que l'on tape par exemple dans le combobox la lettre "C" (pour info: ma liste contient des noms) et que l'on fait défiler le combobox on se retrouve dans les "C". Jusque la tout va bien.
Mais si on se sert de la roulette à ce moment la, la roulette fonctionne mais ca revient au début de ma liste.

Est-il possible, si on est à peu près en milieu de liste dans le combobox, de faire fonctionner la roulette sans que ca revienne au début ?
 
C

Compte Supprimé 979

Guest
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Bonjour lelectricien

Effectivement, il suffit d'ajouter ces évènements
VB:
Private Sub ComboBox1_Change()
  intTopIndex = Me.ComboBox1.TopIndex
End Sub
Private Sub ListBox1_Change()
intTopIndex = Me.ListBox1.TopIndex
End Sub

J'ai modifié le fichier et ajouté une sub ;)
VB:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  UnHook_Mouse
End Sub

Car le UnHook ne se faisait pas correctement

A+
 
Dernière modification par un modérateur:

lelectricien

XLDnaute Junior
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

J'ai tester ta formule à savoir:

Private Sub ComboBox1_Change()
intTopIndex = Me.ComboBox1.TopIndex
End Sub

Mais ca ne fonctionne toujours pas; aucun message d'erreur, bref ça revient toujours au début. En fait, il faudrait dire au moment de l'utilisation de la roulette qu'il doit prendre en compte ce qu'on a déjà tapé. A mon avis on doit joué avec le topindex. Mes connaissances sont un peu limité mais je vais faire des recherches. Si tu as une autre solution je suis preneur.
 
Dernière édition:

lelectricien

XLDnaute Junior
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Et si je ne dis pas de bétise, il faut jouer avec cette phrase (qui se trouve déjà dans le code):

Set ObjUSF = Me: Set ObjList = Me.ComboBox1
 
C

Compte Supprimé 979

Guest
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Bonsoir,

Désolé, mais si tu reprends le fichier du premier post ...
que tu commences à saisir la lettre "H" par exemple et que tu utilises la roulette ...
Chez moi sur Excel 2003, ça fonctionne :(

Edit : autant pour moi ça fonctionne bien si :
1) tu cliques sur la flèche de la Combobox
2) tu saisis la première lettre
3) tu utilises la roulette

A+
 
Dernière modification par un modérateur:

lelectricien

XLDnaute Junior
Re : Mouse Wheel Hook (faire défiler le contenu d'une combobox/listbox avec la roulet

Effectivement si on suit cet ordre:

1 Click sur la flèche
2 Taper une lettre
3 Utiliser la roulette

Ca fonctionne. Bravo à toi BrunoM45!

Mais si seulement on pouvait aussi faire cette ordre la:

1 On tape la lettre
2 Click sur la flèche
3 Utiliser la souris...
 

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG