[VBA-E] Problème pour remplir une listbox multicolonne
Bonjour à tous,
j'ai un problème avec une listbox récalcitrante.
Je cherche à la remplir avec des données qui viennent d'une feuille Excel.
Dans mon userform, j'ai plusieurs combobox, notamment une qui liste des noms de personne. La source est la même que celle de la listbox.
Je cherche a mettre à jour dynamiquement ma listbox en fonction de la valeur de la combobox. Il y a 5 colonnes à mettre à jour.
Quand je fais un test en séléctionnant le nom de la première personne qui est dans la feuille Excel, ma macro fonctionne, j'ai bien trois lignes (car il a trois entrées qui correspondent au nom de cette personne dans la feuille Excel) ainsi que les valeur des 5 colonnes suivantes.
Par contre, dès que je séléctionne un autre nom dans ma combobox, la mise à jour de ma listbox ne se fait que pour la 1ère colonne.
J'ai retourné le problème dans tous les sens, je n'ai pas encore réussi à comprendre d'où venait le problème. Intuitivement, je pense qu'il y a un soucis dès que l'on séléctionne le nom d'une personne qui n'est pas le premier dans la liste de la feuille Excel... Mais après... :aie:
Qu'en pensez vous ?
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
Private Sub ComboBox1_Change()
Dim Comptes As New Collection
Dim id As Integer
Dim n As Integer
Application.ScreenUpdating = False
Sheets("Database").Activate
id = Sheets("Database").Range("A1000").End(xlUp).Row
ListBox1.Clear
On Error Resume Next
For n = 4 To id
If Sheets("database").Range("A" & n).Value = ComboBox1.Value Then
ListBox1.AddItem Sheets("database").Range("W" & n).Value
ListBox1.List(n - 4, 1) = Sheets("database").Range("F" & n).Value
ListBox1.List(n - 4, 2) = Sheets("database").Range("J" & n).Value
ListBox1.List(n - 4, 3) = Sheets("database").Range("L" & n).Value
ListBox1.List(n - 4, 4) = Sheets("database").Range("V" & n).Value
End If
Next n
Application.ScreenUpdating = True
End Sub |
Qu'en pensez vous ?