3 novembre 2026 Instruire

Comment activer la molette de la souris pour ListBox, ComboBox, Frame dans VBA

VBA ne prend pas en charge la molette de la souris pour ListBox, ComboBox, Frame et UserForm. MouseWheel pour VBA de SonVuDev résout avec seulement 1 fichier .bas et 2 lignes de code, fonctionne sur Excel, Access, Word, PowerPoint.

Cet article est actuellement disponible uniquement en vietnamien et en anglais. Version anglaise affichée.

Écrivez-vous une macro VBA dans Excel, Access, Word ou PowerPoint et voyez ListBox / ComboBox / Frame défiler avec les touches mais pas avec la molette de la souris ? Ce n'est pas un bug logiciel, c'est une limitation de VBA du passé. Le

MouseWheel de SonVuDev pour VBA résout ce problème avec seulement 1 fichier .bas et 2 lignes de code. Pas besoin de bibliothèque MSForms, fonctionne sur n'importe quel hôte VBA, prend en charge Office 64 bits et 32 ​​bits.

Pourquoi VBA ne peut-il pas défiler avec la molette de la souris ?

VBA n'est pas .NET ou WinForms — c'est un ancien langage de programmation, profondément intégré à Office. Les contrôles tels que ListBox, ComboBox, Frame ne disposent pas de boucle de message disponible pour intercepter l'événement WM_MOUSEWHEEL. Lorsque vous faites défiler, Windows envoie ce message à la fenêtre parent (UserForm), mais VBA ne le transmet pas au contrôle enfant.

Conséquence : vous devez faire glisser la barre de défilement à la main ou utiliser les touches fléchées, ce qui est très gênant lorsque la liste est longue.

Comment activer la molette de la souris dans VBA

  1. Télécharger MouseWheel.bas de SonVuDev.
  2. Importer le fichier .ba s dans le projet VBA (Alt+F11 → Fichier → Importer un fichier).
  3. Dans l'événement UserForm_Initialize, ajoutez 2 lignes :
    Call MouseWheelEnable(Me)
    Call MouseWheelConfigure(Me, 3, True)
  4. Exécuter le formulaire — la molette de la souris fonctionne.

Fonctionnalités

Quand devez-vous l'utiliser ?

Conclusion

MouseWheel pour VBA est une solution compacte, sans dépendance et facile à intégrer. Si vous écrivez du VBA et souhaitez que votre formulaire puisse défiler avec la souris, c'est le bon outil.