Double click dans un listbox: perte d'informations
Salut à tous,
Ceci pourra peut-être servir à d'autres. J'ai 2 listbox dans une form et je transfert les lignes entre eux soit par un double click soit par un bouton.
Avec le bouton aucun problème. Lorsque j'utilise le double-click, le "système" perd un certains nombre d'informations.
En fait j'ai 9 colonnes dans mon listbox dont 7 sont cachées. Lors du double-click, je supprime la ligne sélectionnées et je l'envoie dans l'autre listbox. Les autres lignes "remontent d'un cran".
Lorsque je ferme la form pour continuer mon traitement, je ne récupère les informations que des 3 premières colonnes, le reste est vide.
Après de multiples tests, je me suis aperçu qu'en laissant suffisamment de temps au système pour gérer la suppression, je récupère toutes les infos.
J'ai donc ajouté une boucle à vide et ça a régler mon problème.
Étrange non?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Private Sub LBKpi_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim i As Double
If FInterface.LBKpi.ListIndex <> -1 Then
FInterface.LBColKpi.AddItem (FInterface.LBKpi.List(FInterface.LBKpi.ListIndex))
FInterface.LBColKpi.List(FInterface.LBColKpi.ListCount - 1, 1) = FInterface.LBKpi.List(FInterface.LBKpi.ListIndex, 1)
FInterface.LBColKpi.List(FInterface.LBColKpi.ListCount - 1, 2) = FInterface.LBKpi.List(FInterface.LBKpi.ListIndex, 2)
FInterface.LBKpi.RemoveItem (FInterface.LBKpi.ListIndex)
End If
'Probleme lors du double-click: il faut donner le temps au système de stocker les données dans la nouvelle ligne. On boucle donc dans le vide.
For i = 1 To 50000000
Next i
End Sub |