Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1672 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Variable tableau dans module de classe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable tableau dans module de classe

n°2312851
alex784
Posté le 21-03-2018 à 17:02:01  profilanswer
 

Bonjour,
 
Je débute en vba et j'aurais bien besoin d'aide s'il vous plaît. Dans une classe Stock que j'ai créée je souhaiterais avoir un tableau contenant les valeurs du cours de ce stock. Du coup j'ai créé un bouton qui permet d'enregistrer son cours, mais rien ne marche et je ne trouve pas l'aide sur les forums.
 
Pour la classe Stock j'ai écrit :
 

Code :
  1. Private mCours() As Double
  2. Property Get mCours() As Double
  3.     Cours() = mCours()
  4. End Property
  5. Property Let mCours(Cours() As Double)
  6.     mCours() = Cours()
  7. End Property


 
Et dans le module :
 

Code :
  1. Sub Ajout_MAJ()
  2. Dim StockA As New Stock
  3. Dim LastRow As Integer         
  4.     LastRow = Range("B" & Rows.Count).End(xlUp).Row
  5. 'LastRow me donne le rang de la dernière case de la colonne de valeurs, que je rentre moi-même dans excel.
  6. StockA.Cours() = Range(Cells(5, 3), Cells(LastRow, 3))
  7. End Sub


 
Pour ce qui est de la variable nom par exemple ça fonctionne, je la récupère de la feuille excel et la mets en variable dans StockA.Nom, mais impossible pour le Cours().  
 
Merci d'avance pour votre aide ! Si vous pensez que l'architecture ou le choix d'un tableau est peu judicieux dans mon cas n'hésitez pas.
 
Bonne journée.
 
Alex

mood
Publicité
Posté le 21-03-2018 à 17:02:01  profilanswer
 

n°2312970
jpl38
Posté le 23-03-2018 à 13:27:40  profilanswer
 

Les tableaux dans les modules de classe, c'est la galère.
Si ça peut t'aider, ce qui suit fonctionne  :
Dans la feuille Excel, je mets une valeur quelconque en B7, et dans la plage C5 à C7 les valeurs 1,2,3.
On récupère cette plage dans le tableau mcours, comme le montre le debug.print final dans la fenêtre Exécution.

 

Module de classe Stock :

 
Code :
  1. Option Explicit
  2. Private mCours As Variant
  3. Property Get Cours() As Variant
  4.     Cours = mCours
  5. End Property
  6. Property Let Cours(ByVal Cours As Variant)
  7.     mCours = Cours
  8. End Property
 

Module normal :

 
Code :
  1. Option Explicit
  2. Sub Ajout_MAJ()
  3.   Dim StockA As New Stock
  4.   Dim TabTemp1 As Variant, TabTemp2() As Variant, i As Long, j As Long, k As Long
  5.   Dim LastRow As Integer
  6.   LastRow = Range("B" & Rows.Count).End(xlUp).Row
  7.   'On suppose LastRow plus grand que 5
  8.   'On récupère la plage dans un tableau bidimensionnel, que l'on ramène à une seule dimension
  9.   TabTemp2 = Range(Cells(5, 3), Cells(LastRow, 3)).Value
  10.   i = LBound(TabTemp2, 1): j = UBound(TabTemp2, 1)
  11.   ReDim TabTemp1(i To j)
  12.   For k = i To j
  13.     TabTemp1(k) = TabTemp2(k, 1)
  14.   Next k
  15. 'on affecte ce tableau à la variable mcours, avec un property Let
  16.   StockA.Cours = TabTemp1
  17. 'Vérification (utilise le property Get)
  18.   For k = i To j
  19.     Debug.Print StockA.Cours(k)
  20.   Next k
  21. End Sub
 


Je me suis inspiré de :
https://support.microsoft.com/en-us [...] d-property
et pour tansformer le tableau en deux dimensions en un tableau unidimensionnel de :
http://www.commentcamarche.net/for [...] ableau-vba


Message édité par jpl38 le 23-03-2018 à 13:28:26

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Variable tableau dans module de classe

 

Sujets relatifs
Comment affecter une valeur quelconque à une variable?[JS]Traitement d'une variable pouvant être un tableau ou pas
Moyen le plus simple pour lire des fichiers CSV --> TableauActualiser un organigramme PPT à partir d'un tableau excel
Max de chacune des dimensions d'un tableau multidimensionnelPHPUnit verifier le type de donnée dans un tableau
problème avec variable à contenu "complexe"Vérifier si variable existe dans la base de donnée
JAVA Variable final ??? 
Plus de sujets relatifs à : Variable tableau dans module de classe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR