Fonction qui renvoie plusieurs tableaux à 2 dimensions?

Delphh

XLDnaute Nouveau
Bonsoir,


Je me permets de vous déranger en cette charmante soirée à cause d'un problème qui commence à se faire long ^^

Voilà, j'ai construis 2 tableaux (63,33) à partir de requêtes Excel.
Comme le Tab2 a besoin du Tab1 également pour être construit, je les ai mis dans le même Sub, qui comporte 2 paramètres. Ces deux tableaux sont dans un Sub car suivant la macro que je lance, ce ne sont pas les mêmes calculs pour les obtenir qui vont se faire.

Or quand je retourne dans mon programme principal, j'ai besoin de récupérer tantôt Tab1 tantôt Tab2.
Alors ma question est: y a-t-il un moyen de récupérer mes deux tableaux?

Je ne pense pas que mon fichier vous aiderez, tellement il y en a et tellement ça part dans tous les sens, mais si vous en avez besoin pas de souci ;)
 

Efgé

XLDnaute Barbatruc
Re : Fonction qui renvoie plusieurs tableaux à 2 dimensions?

Bonsoir Delphh, flyonets44,
Si les "Tableaux" sont des arrays, comme le suggère flyonets44, er si les macros sont dans des modules, on peux les déclarer en public peut être...
Cordialement
 

Pièces jointes

  • Delphh.xls
    29 KB · Affichages: 66

Delphh

XLDnaute Nouveau
Re : Fonction qui renvoie plusieurs tableaux à 2 dimensions?

Je vais voir si je peux me servir de ça, merci.

Et si je mets mes tableaux sous forme de Array, il faudrait qu'il soit à 3 dimensions alors non? Parce que j'ai T(1,1) = 0,2 par exemple.
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Fonction qui renvoie plusieurs tableaux à 2 dimensions?

Re
Ce que tu cherche à faire est peut être un peu "complexe".
Voici un exemple de fonction qui renvoie Un Array de deux Arrays à deux dimensions.
Pour trouver la valeur de Tableau1(1,30) tu utilises TabGénéral(0)(1, 30).
A toi de voir..
Cordialement
Edit :
VB:
Sub principal()
Dim Tableau1(63, 33), Tableau2(63, 33)
TabGénéral = Tableaux(Tableau1(), Tableau2())
MsgBox TabGénéral(0)(1, 30)
End Sub

VB:
Private Function Tableaux(ByRef T1() As Variant, ByRef T2() As Variant)
Dim i&, j&
For i = 0 To 63
    For j = 0 To 33
        T1(i, j) = "Tab1" & "_" & i & "_" & j
        T2(i, j) = "Tab2" & "_" & i & "_" & j
    Next j
Next i
Tableaux = Array(T1, T2)
End Function

Cordialement
 

Pièces jointes

  • Delphh(2).xls
    30 KB · Affichages: 70
Dernière édition:

Discussions similaires

Statistiques des forums

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