Bonjour ,

J’ai un grand nombre de tableau correspondant à des articles de catégories différentes.
Ex Articles_alimentaires_Cat1 , Articles_Ménager _Cat2 …

Ces différents tableaux d’articles ont une structure équivalente ce qui me permet d’implémenter des fonctions communes

Ex : Calcul_stock_dispo , Calcul_dimension_stock , Calcul_prix_stock , Revaloriser_prix_articles .

Je voudrais pouvoir modifier les tableaux par groupe sans passer par un appel direct du type Calcul_stock_dispo (Articles_alimentaires_Cat1 )


J’ai pensé à des structures du type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Array   Livraison_Mardi  = (Articles_alimentaires_Cat1  , Articles_alimentaires_Cat3  ) 
Array  Livraison_Mardi (Articles_alimentaires_Cat4  , Articles_alimentaires_Cat3  ) 
Le problème c’est que ça ne marche pas . 
 
J’ai implémenter une méthode du type :
 
Public   Articles_alimentaires_Cat1 ( ) as string
Public   Articles_alimentaires_Cat2 ( ) as string
Public   Articles_alimentaires_Cat3 ( ) as string
 
Sub def_structure 
Dim MyClasses_M As New Collection
    MyClasses_M.Add Articles_alimentaires_Cat3
       MyClasses_M.Add Articles_alimentaires_Cat1
        MyClasses_M.Add Articles_alimentaires_Cat3
 
For each catégorie in  MyClasses_M
Ret =  Revaloriser_prix_articles (  catégorie  , 2.5  )
Next 
End sub

Ca marche pour les procédures qui lisent les valeurs ( ex calcul de stock ) mais pour les fonctions qui modifient les valeurs , le tableau public Articles_alimentaires_CatN n’est pas modifié. Catégorie correspond bien à la copie de Articles_alimentaires_CatN mais la variable globale n’est pas modifés.

Je précise que ma fonction Revaloriser_prix_articles est définie de la façon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Public function Revaloriser_prix_articles (  byref tab_articles  as variant , augmentation as single )
 
For N = 1 to ubound (   tab_articles )
tab_articles ( N  , 4) =  tab_articles ( N  , 4) *  augmentation
 
Next 
Revaloriser_prix_articles =  « « 
 
End function
Pour une fonction qui ne fait que lire les données sans les modifier ça marche : ex

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Public function  Volumes_stock  ( tab_articles  as variant ) as single
Volumes_stock   = 0
 
For N = 1 to ubound (   tab_articles )
Volumes_stock  = Volumes_stock    +  (     tab_articles ( N  , 6)  *  tab_articles ( N  , 4) *  tab_articles ( N  , 3) *    tab_articles ( N  , 8 ))
 
Next 
 
End function
Pour reformuler ma question,

est il possible de construire un tableau , une structure , une collection qui contiendrait des nom de Tableaux défini ailleurs?