XL 2016 Quelle API pour savoir si une ListBox (UserForm ou ActiveX) a sa ScrollBar Verticale présente ?

Dudu2

XLDnaute Barbatruc
Bonjour les XLDNautes,

Si on peut, sans API, savoir si une ComboBox a son ascenseur affiché grâce à la différence (ComboBox.ListCount - ComboBox.ListRows) ce n'est pas possible avec les ListBoxes.
Certes on connaît son ListBox.TopIndex mais il n'existe pas de ListBox.BottomIndex.
Un approximation est possible avec la ListBox.Font.Size mais ça reste imprécis.

Reste l'API qui pourrait indiquer la présence d'une Vertical ScrollBar mais mes essais sont restés infructueux.
Merci pour toute suggestion.
 
Solution
pour ce qui est de cette discussion j'ai revue la chose pour les ListBox dans userform et feuille

Dudu2

XLDnaute Barbatruc
Le CursorPane c'est pas pour les Windows. C'est pour éliminer les ListBoxes qui sont en Panes #2 à #4 car elles ne fonctionnent pas bien, Bug Excel, et c'est une source d'ennuis. Donc je ne les traite pas. C'est marqué dans les commentaires et remarque comme une restriction.
 

Dudu2

XLDnaute Barbatruc
On parle bien les ListBoxes en Panes #2 à #4 ?
Même si j'arrive à faire que le Scroll fonctionne sur ces ListBoxes en bricolant un defreeze / freeze au démarrage, la fermeture du classeur se termine quasi-toujours, après agitation du Scroll dans une de ces ListBoxes, par une erreur 50290 sur une instruction qui n'est normalement pas en cours d'exécution. Donc c'est un truc qui vient de loin dans Excel.
Ça ne dépend pas du Pane activé. C'est Pane #1 c'est OK, les autres c'est KO.
 

Dudu2

XLDnaute Barbatruc
c'est pas ça, tu te fait une fausse idée sur cette question
J'ai créé un fichier de test et essayé tout ce qui était en mon pouvoir.
Déjà SANS SCROLL, ça ne va pas. Au démarrage, les ascenseurs sont non opérationnels.
Tu trouves ça normal ?
Trace.gif


par contre tu m'a pas répondu a tu testé le mien
Quel fichier veux-tu que je teste ? Ça a un rapport avec ce problème ?
 

patricktoulon

XLDnaute Barbatruc
ben c'est pas grave je l'ai supprimé de toute facon d'autres l'ont testé en 64 et il fonctionne dans les 4 panes avec autre chose que releasepane

pour info il était en post #87
ce qui prouve bien que tu ne lis pas mes messages
alors que je t'ai bien dis je met ça au propre et je reviens en #post 84

tu parles charles je pouvais toujours attendre
 

Dudu2

XLDnaute Barbatruc
Ah ben en plus s'il n'est plus là je risque pas de le tester.
Tes fonctions je les ai évidemment testées puisque j'en ai adopté le code.

Je te signale que toi non plus tu n'as pas testé mon Scroll que j'ai dû tester sur mon Laptop avec Excel 32Bits. Mais c'est pas grave, t'avais sans doute quelque chose d'autre à faire et je le comprends parfaitement.
 

patricktoulon

XLDnaute Barbatruc
pour ce qui est de cette discussion j'ai revue la chose pour les ListBox dans userform et feuille
 

Dudu2

XLDnaute Barbatruc
1668263829727.gif
,
Sur ma config Excel 2016 64Bits, j'arrive assez bien à calculer les RECT des ListBox / ComboBox en comparant ces RECT calculés aux RECT des WindowFromPoint (sauf ComboBox de UserForm car pas de Handle). Ça correspond à 2 pixels près.
1668264011336.png
1668264357781.png

1668264094631.png
1668264131991.png


J'aimerais savoir ce que ça donne sur ta config Excel 2013 32Bits.
Tu peux essayer avec le fichier joint ?
 

Pièces jointes

  • CheckComputedVersusWindowRECT.xlsm
    59.3 KB · Affichages: 1

Statistiques des forums

Discussions
312 213
Messages
2 086 305
Membres
103 174
dernier inscrit
OBUTT