utilisation de la molette dans une listbox

supertino

XLDnaute Nouveau
Bonjour à tous

d'abord je plante le décors, j'ai développé une interface graphique en VBA sous Excel 2007, aujourd'hui le code est conséquant (quelques milliers de lignes) sur plusieurs feuilles et une belle quantité d'objets activex.

j'ai ici et là plusieurs combobox et listbox.

le soucis, lorsque je séléctionne une listbox et que j'utilise la molette de la souris, excel plante méchamant en me proposant de récupérer le travail en cours et de redémarrer excel. l'autre soucis, c'est que ce bug est aléatoire et semble dépendre de l'environnement windows et/ou matériel.

en effet, sur un pc ca plante, sur un autre il ne se passe simplement rien.

je voudrais savoir s'il existe un moyen "simple" et "efficace" d'éviter ce plantage lors de l'utilisation de la molette dans une listbox.

j'ai trouvé un code mais celui-ci se base sur l'utilisation de variables d'environnement windows à l'ouverture d'un userform, et j'ai énormément de mal à l'adapter à mon programme puisque je n'utilise que des sheets.

s'il existait une fonction de quelques lignes, un code ou un truc tout bête ca serait super chouette ! l'idée est de ne pas être obligé de télécharger ou d'installer des patchs, des dlls ou autre, il faudrait que ca marche avec une installation standard de XL07 et un winXP tout neuf, sans la moindre modif.

ce bug est vraiment critique, et je m'arrache un peu les cheveux :)

merci à vous !
 
Dernière édition:

smotty

XLDnaute Occasionnel
Re : utilisation de la molette dans une listbox

Bonsoir,

Au risque de dire une bêtise, as-tu le complément BlueTouth installée? (dans la barre de menu)

J'ai eu le même souci mais ça date un peu, et de mémoire c'était ce qui faisait planter.:confused:
 
Dernière édition:

supertino

XLDnaute Nouveau
Re : utilisation de la molette dans une listbox

bonjour,

je n'ai pas de complément bluetooth, je doute que ca vienne de là...
il faut peut-être que je l'installe pour le désinstaller ensuite, sait-on jamais ? :rolleyes:

je vais jeter un oeil à la section discussion similaire, j'ai un peu peur que ce soit une immense botte d'aiguille dans laquelle je cherche une brindille de foin :)

suite :

je viens de lire ceci https://www.excel-downloads.com/thr...ns-listbox-de-userform-showmodal-false.22508/ et c'est très intéressant.

cependant j'ai remarqué qu'il s'agit d'un userform, mais moi j'aimerais faire la même chose en dehors d'un userform. sur un sheets("feuil1").listbox1 par exemple...

je vois pas trop comment adapter cette usine à gaz...

merciiiii
 
Dernière édition:

supertino

XLDnaute Nouveau
Re : utilisation de la molette dans une listbox

bonsoir et la bienvenue sur le forum

regarde en bas de la page dans la section Discussions similaires si jamais il y a ce que tu cherche ;)

Bonjour et merci pour vos réponses.

Hélas, je n'ai rien trouvé dans les discussions similaires, la seule solution semble de passer par des userforms, ce qui remet en cause un bonne partie de mon programme :/

En fait, lorsque ma listbox est dans un userform, la molette ne fait pas planter excel, quelle que soit le code qui est derrière. Mais lorsque la listbox est intégrée à un feuille, alors là rien ne va plus...

Quelqu'un a une idée ?:confused:
 

Hulk

XLDnaute Barbatruc
Re : utilisation de la molette dans une listbox

Hello tout le monde :D

A mon humble avis, ou la soluce à smotty marche, ou tu peux revoir la totalité de ton projet parce qu'avec "quelques" milliers de lignes sur plusieurs feuilles et une belle quantité d'objets activex, j'imagine que trouver l'erreur dans la chose... Bonjour !

Chez moi, la molette dans une ListBox ne fonctionne tout simplement pas.
Peut-être que tu as inclus dans tes ListBox un code pour que ça active la molette (il me semble avoir vu un jour un code du genre, mais bonjour) et que c'est ça qui fait planter.

Si on parle bien de ListBox, parce qu'avec des ListView la molette fonctionne !

Mais ce n'est que mon avis.
 

supertino

XLDnaute Nouveau
Re : utilisation de la molette dans une listbox

Bonjour,

Je suis bien d'accord avec toi, d'habitude c'est plus facile de travailler sur du code, mais le soucis justement c'est qu'il n'y a pas besoin de code pour que ca plante :eek:

essayez donc la manip suivante sur plusieurs pc, des fois ca plante, des fois ca plante pas :(

- créez un nouveau classeur sous excel 2007 et winxp
- en mode développeur ajoutez une listbox ActiveX et posez-la sur la feuille
- désactivez le mode développeur, cliquez sur la listbox, utilisez la molette et observez le (non) plantage.

Hulk, je crois que nous avons vu le même code ; une démo molette souris dans une listbox... sauf que cette listbox n'est pas posée sur une feuille mais dans un userform. En effet si je met moi aussi une listbox dans un userform sans le moindre code derrière ca plante plus :) mais il faut que je transfert tout dans un userform :(

jamais entendu parler de listview, je vais voir ce que je trouve, mais n'oublions pas que je suis en VBA et pas en VB...

voilou merci pour vos réponses et à bientôt
 

Ubot303

XLDnaute Occasionnel
Re : utilisation de la molette dans une listbox

Bonjour à toi,

Il m'arrivait de faire planter Excel quand le rolling de la molette depassait l'index de la combobox/listbox...
En effet, j'avais configuré ma souris pr que le rolling fasse des pas de 10 lignes... et j'avais une macro évènementielle sur la box et le dépassement du .count faisait planter en dur...

Comme le cas que tu indiques est relativement similaire...

Après, il n'ya que toi qui pourra parcourir les lignes du code qui font intervenir la box et tous ce qui est lié...
 

supertino

XLDnaute Nouveau
Re : utilisation de la molette dans une listbox

Bonjour à tous,

Merci pour ta réponse. Hélas, cela ne m'aide pas car je n'ai pas de macro évènementielle sur la listbox.

Je vous envoie un fichier type, le genre de truc bête et méchant. Sur mon PC perso, ca plante pas (un modeste pc portable acer aspire 5315 sous winxp, XL07). Sur plusieurs PCs au bureau, ca plante, aussi bient XL07 que XL03 tous sous winxp. Qu'il y ait du code derrière ou pas ne change strictement rien :'(

J'ai bien l'impression que ca dépends des paramètres windows et divers variables d'environnement, mais je n'ai pas plus d'idée...


heeeeelp.....
 

Pièces jointes

  • Classeur1.xlsm
    10.4 KB · Affichages: 119
  • Classeur1.xlsm
    10.4 KB · Affichages: 138
  • Classeur1.xlsm
    10.4 KB · Affichages: 140

supertino

XLDnaute Nouveau
Re : utilisation de la molette dans une listbox

bon, finalement j'ai trouvé une solution pas très éléguante, mais qui fonctionne

à la fin de mon script sur clic listbox, j'ai ajouté ces lignes

sheets("sheets").unprotect("mot de passe")
label.select 'ou une combobox, ou un bouton.....
sheets("sheets").protect("mot de passe")

si quelqu'un a quelque chose de plus jolie à proposer, je suis preuneur :)

en espérant que ca serve à qqn...

à bientôt !
 

Discussions similaires

Réponses
18
Affichages
585
Réponses
8
Affichages
323

Statistiques des forums

Discussions
312 047
Messages
2 084 859
Membres
102 688
dernier inscrit
Biquet78