Créations d'objets dans une collection
Bonjour,
j'ai créé une classe "Mesh2D" qui contient entre autres une propriété "Points" qui est une collection d'objets de type "Grid". Un objet Grid est un point avec des propriétés "x" et "y" (vous aurez compris qu'il s'agit des coordonnées).
Je voudrais donc alimenter cette "liste" de points avec les valeurs issues d'une feuille excel.
Avant de parler du problème voilà donc le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Private sub Test()
Dim rng as Range, i as Long
Dim maillage as New Mesh2D, P as New Grid
'Récupération de l'adresse des données sur la feuille
Set rng = RngInput()
For i = 1 To rng.Rows.count
P.x = rng(i,1)
P.y = rng(i,2)
maillage.Points.Add P
Next i
End Sub |
J'obtiens donc une collection de points dont la taille est correcte mais dont les éléments sont tous identiques au dernier ajouté.
Si je me limite à une sélection de 3 lignes et que je procède comme ci-dessous, tout fonctionne bien.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
Private sub Test()
Dim rng as Range, i as Long
Dim maillage as New Mesh2D
Dim P1 as New Grid, P2 as New Grid, P3 as New Grid
'Récupération de l'adresse des données sur la feuille
Set rng = RngInput()
P1.x = rng(1,1)
P1.y = rng(1,2)
maillage.Points.Add P1
P2.x = rng(2,1)
P2.y = rng(2,2)
maillage.Points.Add P1
P3.x = rng(3,1)
P3.y = rng(3,2)
maillage.Points.Add P1
End Sub |
Seulement j'ai un nombre d'éléments qui est variable et cette dernière méthode n'est donc pas envisageable. Quelqu'un pourrait-il m'aider ?