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...

Qu'en pensez vous ?

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?