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

  1. 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