Bonjours,
Je souhaiterais crée une classe de collection d'objet afin de tester l'utilisation de la POO sur excel. Cependant a chaque fois que je tente quelle que chose cela ne fonctionne pas et je ne m'explique pas pourquoi.
Voici donc le code de ma classe personne
Dim clsVisage As Visage
Private clsNom As String
Private clsPrenom As String
Property Get Visage() As Visage
Set Visage = clsVisage
End Property
Private Sub Class_Initialize()
Set clsVisage = New Visage
End Sub
Property Let Nom(NewNom As String)
clsNom = NewNom
End Property
Property Get Nom() As String
Set Nom = clsNom
End Property
Property Let Prenom(NewPrenom As String)
clsPrenom = NewPrenom
End Property
Property Get Prenom() As String
Set Prenom = clsPrenom
End Property
Maintenant le code de ma collection Personnes
Option Explicit
Private Persons As New Collection
Sub Add(NewNom As String, NewPrenom As String)
Dim p As New Personne
p.Nom = NewNom
p.Prenom = NewPrenom
Persons.Add p
End Sub
Sub Add(NewPersonne As Personne)
Persons.Add NewPersonne
End Sub
Property Get Count() As Long
Count = Persons.Count
End Property
Property Get Item(NameOrNumber As Variant) As Personne
Set Item = Persons(NameOrNumber)
End Property
Sub Remove(NameOrNumber As Variant)
Persons.Remove NameOrNumber
End Sub
Et enfin voici mon programme principal
Sub Test()
Dim colPersons As New Personnes
Dim Julian As Personne
Set Julian = New Personne
With Julian.Visage.Cheveux
.Couleur = "Brin"
.Longueur = 5
End With
Personnes.Add (Julian)
End Sub
Du coup comme j'ai fait de l’héritage aussi pour tester je ne vous et pas envoyer mes classe hériter de personne comme visage et cheveux. Si jamais vous en avait besoin je vous les envoie sans souci ^^