Bonjour,

J'essaye d'afficher des données filtrées dans ListBox

L'affichage fonctionne bien avec la fonction ListBox1.AddItem mais lorsque je clique sur un élément de la Listbox pour afficher les détails dans des Textbox, ce sont les données d'un autre élément qui sont pris en compte

Je suis sur que cette situation a déjà été posée dans ce forum mais je ne trouve aucune discussion qui répond à ma question

Je peux joindre un fichier comme exemple mais je laisse cela comme dernier recours tel que mentionné dans les règles de ce forum

Voici le code pour ajouter des éléments à la listeBox :

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
Private Sub Affiche_Liste()
 
With Me.ListBox1
 
.ColumnCount = 4
.ColumnWidths = "80;100;120;80"  'Statut,Nom, Prénom, CodePostal
.Clear
 
End With
 
Dim k, i
k = 0
With Sheets("Data")
For i = 3 To .[A65000].End(xlUp).row
If .Cells(i, 2) = "TempsPlein" Then
Me.ListBox1.AddItem
Me.ListBox1.List(k, 0) = .Cells(i, 2) 'Statut
Me.ListBox1.List(k, 1) = .Cells(i, 3) 'Nom
Me.ListBox1.List(k, 2) = .Cells(i, 4) 'Prénom
Me.ListBox1.List(k, 3) = .Cells(i, 8) 'CodePostal
 
k = k + 1
End If
Next i
End With
 
End Sub
Voici le code pour afficher dans des textbox :

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
Private Sub ListBox1_Click()
 
Dim Ligne As Long
 
  Ligne = Me.ListBox1.ListIndex + 3
 
  With Sheets("Data")
 
txt_date = .Range("A" & Ligne)
txt_statut = .Range("B" & Ligne)
txt_nom = .Range("C" & Ligne)
txt_prenom = .Range("D" & Ligne)
txt_ddn = .Range("E" & Ligne)
txt_tel = .Range("F" & Ligne)
txt_adresse = .Range("G" & Ligne)
txt_codepostal = .Range("H" & Ligne)
 
  End With
 
End Sub
Merci pour vos conseils