Une ListBox capricieuse

Bonjour,

Grace à l'un d'entre-vous, je n'ai aucun problème pour charger une ListBox, sauf dans le cas particulier dont le code est ci-dessous :

            With .lst1
                .ColumnCount = 5
                .ColumnWidths = "0;120;30;30;30"
                .BoundColumn = 1
                .TextColumn = 2
                .MultiSelect = fmMultiSelectMulti
                .TextAlign = fmTextAlignRight
                .Tag = "GC"
                .List = [Gc].Value
                For i = 0 To .ListCount - 1 'Sans effet
                    .Selected(i) = False
                Next i
            End With

Le code lancé, ma ListBox(lst1) affiche bien, sur 5 colonnes (dont la première est masquée) la plage de cellules nommée "Gc".

Vous aurez remarqué que, comme je dois afficher des nombres, j'ai choisi l'alignement des données à droite des colonnes et l'option "Multi" pour la propriété "Multiselect".

J'ai 2 problèmes :

1) Systématiquement à l'ouverture, 2 lignes sont actives ("Selected"), dans mon cas les lignes 0 et 3 (pourquoi toujours celle-là ?). Il n'y a pas de problème pour les désactiver, mais c'est plutôt gênant d'expliquer ça aux utilisateurs de mon projet...

2) Quelques soient les largeurs introduites dans la propriété "ColumnWidths" la 5ème colonne est collée au bord droit du contrôle, ce qui la masque au moins partiellement si une barre de défilement verticale s'affiche (liste trop longue pour être totalement visible).

Merci à celui qui peut m'éclairer...

Bonjour Geolek,

Pour ton problème 1, il faut passer en mode débogage dès l'ouverture de ton USF, tu verras ce qui se passe en faisant du pas à pas (F8)

Pour ton problème 2, il faut ajouter l'ascenseur Horizontal à la listebox, je pense.

@+

Merci Bruno

Pour le problème 1, j'ai bien sûr essayé la méthode F8 mais ça ne m'avance pas car aussitôt que la ListBox se met à jour, mes lignes 0 et 3 sont activées et le restent même quand on passe dans la boucle "For-Next" qui devrait, en principe les désactiver.

Je laisse tomber ce problème car j'en ai bien d'autres, plus importants, à résoudre pour l'instant.

Pour le problème 2, ajouter une barre de défilement horizontale est encore plus gênant car cela ne peut se faire, je crois, qu'en programmant la somme "ColumnWidths" plus grande que la "Width" du contrôle. Et cela obligerait l'utilisateur à manipuler cette barre à chaque coup pour lire la dernière colonne.

Mais depuis tout-à-l'heure j'ai trouvé une autre solution qui marche très bien. Il suffit, tout simplement d'ajouter une colonne vierge à la droite de ma plage [Gc] et, bien entendu, d'ajouter aussi une 6ème colonne (de largeur 0 !) à ma listBox.

Encore merci et, comme tu dis, @+

Rechercher des sujets similaires à "listbox capricieuse"