Bonjour, j'ai un soucis lorsque j'exécute le code de mon application, je tente d'ajouter un objet à ma classe et j'obtient ce message d'erreur :
"L'objet ne gère pas cette propriété ou cette méthode"
Voici la déclaration de ma collection :
La déclaration de mon objet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Private mcolpersons As Collection
Voici le code d'ajout de l'objet dans ma collection
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Public nom2 As String Public prenom2 As String Public ville2 As String Public datenaissance2 As String Public nomcomplet2 As String Public Event completed()
Le détail de la méthode createperson2
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 Sub testcollection(nom2 As String, prenom2 As String, datenaissance2 As Date, ville2 As String) Dim colpersons As New persons Dim newperson As New person2 Dim i As Long Set colpersons = New persons With colpersons newperson = .createperson2(nom2, prenom2, datenaissance2, ville2) .add (newperson) MsgBox "Maintenant, le nombre d'éléments présents dans la collection est :" & .count MsgBox " Maintenant, on va faire défiler la collection :" For i = 1 To .count MsgBox .item(i).nom2 Next End With
Et le détail de ma méthode add :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Public Function createperson2(strnom As String, strprenom As String, dtmnaissance As Date, strville As String) As person2 Dim objperson2 As person2 Set objperson2 = New person2 With objperson2 .nom2 = strnom .prenom2 = strprenom .ville2 = strville .datenaissance2 = dtmnaissance End With Set createperson2 = objperson2 End Function
Alors mes méthodes sont bien reconnues, en saisissant ".", j'ai bien accès à tous mes méthodes et lors de leur déclarations, je respect bien les signatures.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Public Sub add(ByRef objperson2 As person2, Optional ByVal key As String = "") If Len(key) = 0 Then key = objperson2.nom2 & Format(objperson2.datenaissance2, "yyyymmdd") End If mcolpersons.add objperson2, key End Sub
J'instancie mon objet et ma collection avec NEW
Je déclare le liens de parenté entre ma collection et mon objet :
J'ai temporairement enlevé la suppression du pointeur de mon objet et de ma collection car je craignais que l'objet ne se détruisait pas au bon moment.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Property Set parent(ByRef colpersons As persons) If colpersons Is Nothing Then mobjparent = colpersons End If End Property Property Get parent() As persons objperson2.parent = mobjparent End Property
En espérant que le message n'était pas trop long, je remercie les personnes qui auront lu mon message jusqu'au bout.
Merci d'avance à tous ceux qui pourront ou essairont de m'aider !
Cordialement,
NZs
Partager