Polymorphisme en vba
minilapin
-
Utilisateur anonyme -
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
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
A voir également:
- Polymorphisme en vba
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
1 réponse
Bonjour,
N.B. Je ne suis pas expert en module de classe sous VBA, mais j'ai
quelques connaissances.
Exemple :
Module de classe Lapin
Module de classe LapinBelier
Module standard (Utilisation des classes )
Cdt
Lupin
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