Bonjour, j’ai fait pas mal de développement dans ma vie, je me suis mis à VBA il n’y a pas très longtemps et j’ai un problème que je m’explique pas, et je me demande si quand on insère un élément dans un tableau, vba n’insérerait pas une copie de l’élément dans le tableau plutôt que la référence à l’objet d’origine :

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
Public Type User
  firstName As String
  lastName As String
End Type 
 
Sub test()
  Dim userList(1) As User
  Dim user1 As User
 
  user1.firstName = « Tom »
  user1.lastName = « Hanks »
  userList(0) = user1
 
  Debug.Print "0 userList(0).firstName=" & userList(0).firstName & " userList(0).lastName=" & userList(0).lastName
  user1.lastName = "Cruise"
  Debug.Print "1 userList(0).firstName=" & userList(0).firstName & " userList(0).lastName=" & userList(0).lastName
et la console affiche

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
0 userList(0).firstName=Tom userList(0).lastName=Hanks
1 userList(0).firstName=Tom userList(0).lastName=Hanks
et là je ne comprends pas car je m’attendais à voir

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1 userList(0).firstName=Tom userList(0).lastName=Cruise
Auriez-vous des explications ? Je viens du monde java et en java ça se comporterait comme je l’ai écrit.

Merci pour vos réponses