comment gerer tableau de classe dans module de classe VBA

Starkoala

XLDnaute Nouveau
Bonjour @tous

Voici quelques jours que je me casse les dents sur un probleme sans doute simple.
J ai de bonnes notions de vba et c++.

mon but est de creer une feuille excel qui liste des produits et pour chaque produit suit l evolution du prix dans le temps.

l idee est d utiliser des classes. j ai la class prix, qui est simplement une date et un prix:

Code:
'---------------------
' Classe Prix
'---------------------

Dim DateH As Date
Dim Prix As Integer

'--------------------------
'
' DateH
'
'--------------------------
Public Property Get GetDateH() As Date
GetDateH = DateH
End Property
Public Property Let SetDateH(Val As Date)
DateH = Val
End Property

'--------------------------
'
' Prix
'
'--------------------------
Public Property Get GetPrix() As Integer
GetPrix = Prix
End Property
Public Property Let SetPrix(Val As Integer)
Prix = Val
End Property

'--------------------------
'
' methode AfficherDateH
'
'--------------------------
Sub AffDateH()
MsgBox (GetDateH)
End Sub
'--------------------------
'
' methode AfficherPrix
'
'--------------------------
Sub AffPrix()
MsgBox (GetPrix)
End Sub

celle ci marche bien mais a present je souhaite creer la classe produit.
Un produit est un nom et un tableau de de prix.
Je doit donc pouvoir ajouter un prix a chaque produit, ce prix se mettra dans le tableau de prix du produit.

Mon probleme ici est de gerer un tableau dans la classe produit. je sqis le faire en c++ mais ici je n y arrvive pas

ebauche de produit
Code:
'---------------------
' Classe Produit
'---------------------
Option Explicit

Dim Nom As String
Dim HistPrix() As Variant
'--------------------------
'
' HistPrix
'
'--------------------------
Public Property Get GetHistPrix(i As Integer) As Prix 'obtenir le prix numero i
    GetHistPrix = HistPrix(i)
End Property
Public Property Set SetHistPrix(Value As Prix) ' ajouter un nouveau prix au produit
    ReDim Preserve HistPrix(UBound(HistPrix()) + 1) 'ajoute un ligne au tableau de prix
    HistPrix(UBound(HistPrix)) = Value ' ajoute le prix a la fin du tableau
End Property

'--------------------------
'
' Nom
'
'--------------------------
Public Property Get GetNom() As String
GetNom = Nom
End Property
Public Property Let SetNom(Value As String)
Nom = Value
End Property

bien sur cela ne marche pas mais je bloque.

pouvez vous m indiquer comment on gere des tableaux de classe dans une classe ?

Merci,
Thib
 

Dranreb

XLDnaute Barbatruc
Re : comment gerer tableau de classe dans module de classe VBA

Bonjour.

Le seul problème, il me semble, c'est que vous définissez une Property Set au lieu de Let pour affecter autre chose qu'un objet.

Ah non, ce n'est pas ça: c'est bien un objet mais je n'en vois pas un Set au dernier élément du tableau.
 
Dernière édition:

Starkoala

XLDnaute Nouveau
Re : comment gerer tableau de classe dans module de classe VBA

Bonjour,

Merci, je vois qu il faut utiliser l objet dictionnaire. Je vais regarder dans ce sens ce soir.
Avec vos exemples je suis sur de trouver mon bonheur.

Je posterais mon nouveau code des qu il fonctionnera,

Merci et a bientot,
Thib :)
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG