Polymorphisme en vba

minilapin -  
 Utilisateur anonyme -
Bonjour à tous(toutes),

Je suis habituellement developpeuse C#, et pour une application particuliere, je suis en train de faire un peu de VBA, langage pour lequel je suis tout a fait newbie.
Comme j'aime bien l'objet et que j'ai envie de me compliquer la vie, j'essaie de faire du polymorphisme en vba. Mais j'ai un pb que je n'arrive pas a resoudre, et j'aimerai solliciter votre aide.
Le probleme est le suivant : j'ai une classe Lapin "parent", des classes filles qui l'implementent (ex: LapinBelier). La classe Lapin contient une collection de string avec les noms des lapins, et une fonction Bondir

J'ai donc un truc du style :
Classe Lapin
[CODE]
Option Explicit

Public ListeDeNomsDeLapins As Collection

Public Sub Bondir
End Sub

[/CODE]

et une classe LapinBelier qui "implements" Lapin
[CODE]
Option Explicit

Implements Lapin
Private Parent As Lapin

Public Sub Lapin_Bondir
End Sub

Private Property Get Lapin_ListeDeNomsDeLapins () As Collection
End Property

Private Property Let Lapin_ListeDeNomsDeLapins(ByRef Liste As Collection)
End Property
[/CODE]

Quand je compile, ça dit: "Le module objet doit implementer "ListeDeNomsDeLapins" pour interfacer Lapin.

Je ne vois pas du tout ce qui manque ou ce qui est faux....

En vous remerciant d'avance pour votre aide,

minilapin



1 réponse

Utilisateur anonyme
 
Bonjour,

N.B. Je ne suis pas expert en module de classe sous VBA, mais j'ai
quelques connaissances.

Exemple :

Module de classe Lapin
Option Explicit  

Private ListeDeNomsDeLapins As Collection  
'  

Public Event Bondir()  
'  

Private Property Get Lapin_ListeDeNomsDeLapins() As Collection  
    Lapin_ListeDeNomsDeLapins = ListeDeNomsDeLapins  
End Property  
'  

Private Property Let Lapin_ListeDeNomsDeLapins(ByRef Liste As Collection)  
    ListeDeNomsDeLapins = Liste  
End Property  
'  


Module de classe LapinBelier
Option Explicit  

Implements Lapin  

Private Parent As Lapin  
Private LapinCollection As Collection  
'  

Public Sub Bondir()  
    MsgBox "LapinBelier"  
End Sub  
'  

Private Property Get ListeDeNomsDeLapins() As Collection  
    Lapin_ListeDeNomsDeLapins = LapinCollection  
End Property  
'  

Private Property Let ListeDeNomsDeLapins(ByRef Liste As Collection)  
    LapinCollection = Liste  
End Property  
'  


Module standard (Utilisation des classes )
Option Explicit  
'  

Sub Princi()  

    Dim MonLapin As New LapinBelier  

    MonLapin.Bondir  

End Sub  
'  


Cdt

Lupin
0