Bonjour a tous
quelqu'un aurais une idée voir exemple du comment connaitre la position de la scrollbars horizontale d'une listbox avec ou sans api
Bonjour a tous
quelqu'un aurais une idée voir exemple du comment connaitre la position de la scrollbars horizontale d'une listbox avec ou sans api
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour à vous,
D'après cette discussion, il semble que Stephen Lebans ait développé ce genre de code, pour Access (téléchargeable ici).
N'ayant pas Access sur mon poste, je n'ai pas pu tester.
D'autres solutions pourraient être :
- Utiliser un conteneur ; cela permettrait d'ajuster dynamiquement la largeur de la listbox à son contenu et de n'utiliser que les scrollbars du conteneur.
- Utiliser autre chose qu'une ListBox ; ce contrôle est en effet très limité, notamment en termes de mise en forme des données.
Cordialement
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Merci Pierre pour cette précision.
Comme je l'indiquais, impossible pour moi de tester, et donc de savoir si c'est applicable.
C'est donc un coup d'épée dans l'eau
Bonne journée à tous
Bonjour Patrick,
Il n'y a, du moins à ma connaissance, aucune méthode le permettant.
- Nativement sous VBA ==> impossible (tu l'auras constaté toi-même)
- Avec API ==> impossible également sans connaitre le hWnd de la ListBox.
Tu peux éventuellement contourner le problème en plaçant, en mode création (et non dynamiquement), ta ListBox dans un Frame.
Frame qui lui possède un événement _Scroll().
re
oui franck la frame j'y avais pensé avec la listbox de la largeur de toutes les colonnes réunies mais ca rend le chalenge moins intéressant du coup
peut être y serait je obligé
j'ai pourtant exploré quelques piste qui te paraitrons tordues mais quand même
comment détecter que la souris se trouve dans la scroll = avec getpixel sur la couleur générique que l'on peut mémoriser dans l'activâtes
je n'ai pas tester je ne sais pas si le x du move est donné quand on est dans les scrolls il me semble que non
jai pecher quelques exemple de hooking(yper cotton a reformater les code pour VBA) je cherche encore a comprendre comment on
obtient le HDC
bref c'est pas fini
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Le hDC ne peut être obtenu que pour une vraie fenêtre Windows.
La ListBox en est-elle une?
Si oui, tu obtiendras facilement son hDC grâce à 2 fonctions de l'api. Sinon c'est loupé...
Il te restera la méthode avec un Frame. Même si ce n'est pas ton choix, je te recommande vivement la simplicité, d'autant plus que tu n'es qu'au début de ton développement.
A+
Bonjour
A Patrick :
Juste une question, juste pour forcer à la réflexion :avec getpixel sur la couleur générique que l'on peut mémoriser dans l'activâtes
Laquelle (de couleur) des quatre possibles ?
Et le "move" sur quelle(s) partie(s) de l'ascenseur ?
Et ce ne serait pas tout !
Bonsoir Jacques,
Personnellement je n'en voit que 3, sous Excel 2007/Win 7.
Le noir de la flèche, le fond du bouton et le fond de la scrollbar.
De plus, n'importe qu'elle autre partie, y compris le "fond" de la listbox (là ou sont les données), peuvent avoir la même couleur non?
Comment distinguer aussi le "bouton" de scroll droit, du gauche?
Avec encore un code supplémentaire, (sur le Left et le Width de la listbox)...
Non, ce n'est pas la solution.
La solution serait peut-être de pouvoir déterminer le hDC de la ListBox et, par l'utilisation de fonctions de l'api, de "gérer" le scroll.
Mais bon, pour cela, il faudrait déjà pouvoir extraire le hWnd d'une ListBox.
J'ai mis ce passage en italique car je pré-suppose que cela ne pourrait (si cela devait fonctionner) que mener à une usine à gaz...
EDIT :
Il me semble également que non.Envoyé par patricktoulon
Ce qui va nécessairement nous emmener encore sur d'autres calculs, qui seront probablement horribles à réaliser sans contrôles supplémentaires...
Ne me semble pas correspondre à ta demande.Envoyé par patricktoulon
Les exemples de hooking que j'ai vu sur le net sont fait pour scroller une ListBox avec le bouton du milieu de la souris.
J'aurais éventuellement une hypothèse mais qui nécessiterai l'installation d'une dll, la référencer dans le projet, donc du TRES lourd...
A vous lire,
Bonsoir,
Amicalement,
Franck
Partager