J'ai fait une méthode qui prend un tableau d'objet global `arrayOReservists`, qui représente des gens, et qui affiche ses objets, c'est à dire chaque personne, dans une ListBox.
Une autre méthode, `ListBoxResults_DblClick`, réagit lorsque je double-clique sur l'une des lignes de la ListBox. Elle affiche une UserForm à laquelle j'aimerais transmettre l'objet sur lequel j'ai cliqué. Cependant je ne sais pas comment y avoir accès à cet objet. J'ai l'impression que les données transmises à la ListBox par AddItem sont transformées en texte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ' On remplit la ListBox des résultats avec les noms et prénoms des personnels ListBoxResults.AddItem (arrayOReservists(i).Surname & " " & arrayOReservists(i).Name) ' On redimensionne le tableau i = i + 1
En effet quand j'affiche `MsgBox (ListBoxResults.List(i))` j'ai uniquement le nom et le prénom et non pas l'objet.
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 Private Sub ListBoxResults_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Dim Msg As String Dim i As Integer Dim newInstanceOfMe As Object ' On cherche le nom et le prénom du réserviste sur lequel on a cliqué For i = 0 To ListBoxResults.ListCount - 1 If ListBoxResults.Selected(i) Then ReservistName = ListBoxResults.List(i) End If Next i ' Prise en compte du cas où l'on clique sur la TextBox Results alors que celle-ci est vide If False Then If ReservistName <> "" Then Set newInstanceOfMe = UserForms.Add(Me.Name) newInstanceOfMe.Caption = ReservistName newInstanceOfMe.Show Unload newInstanceOfMe Set newInstanceOfMe = Nothing End If End If ' passer le nom, le prénom à ReservistUserForm et dans le Load qui filtrer la liste à partir de ces champs en obtenant l'objet oReservist. ' Una vez tengas la informacion de ese usuario lo siguiente sera mapear la informacion a los textBox correspondientes. ReservistFormUserForm.Caption = ReservistName ReservistFormUserForm.Show End Sub
Par conséquent comment stocker des objets dans une ListBox vba et les récupérer lorsque nous cliquons dessus ? Cela me permettrait, par exemple, de les mettre dans une variable globale à laquelle j'aurais accès dans l'objet UserForm.
Annexe
Voici l'interface avec la ListBox si cela est plus parlant:
![]()
Partager