Multi Level Array [Résolu]

Signaler
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
-
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
-
Bonjour a tous,

J'ai un probleme avec un array que j'essaie de contruire.
Voici mon code:
Dim ArrayRS(2) As Variant
Dim Col0(5) As Currency
Dim Col1(5) As Currency
Dim Col2(5) As String

'Je remplis mes arrays
Col0(0) = 1.00
Col0(1) = 2.00
'...
Col1(0) = 3.45
Col1(1) = 6.25
'...
Col2(0) = "2008-01"
Col2(1) = "2008-02"
'...
ArrayRs(0) = Col0
ArrayRs(1) = Col1
ArrayRs(2) = Col2

Msgbox ArrayRs(1)(2)     'En theorie deverait retourner "2008-02" ??

Me retourne des drole de resultats...

Est-ce que c'est moi qui c'est tromper en quelque part?

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]

7 réponses

Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Non pas du tout max.

En fait "2008-02" correspond a un seul champ... si tu regarde bien ArrayRs est multiniveau...

Mais de toute facon j'ai remedier a mon probleme... (en fait je ramassait mon array a lenvers...)

ArrayRs(y)(x) au lieu de ArrayRs(x)(y) ...

mais bon, merci tout de meme

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Salut,
Drôle de notification ==> drôles de résultats .
Si tu veux avoir "2008-02" et qq chose, il fallait écrire
Msgbox ArrayRs(1) & " " & ArrayRs(2)

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
De plus il y' a plusieirs choses qui ne vont pas.
-Dim ArrayRS(2) donnes un tableau à deux cellules
  ce qui fait que ArrayRs(2) = Col2 n' est pas valide
tant au point de vue de la dimension qu' au point de
vue de l' écriture.
Col2 ne veut rien dire.Pas plus d' ailleurs que
ArrayRs(0) = Col0
ArrayRs(1) = Col1

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Ah bon, j' ai compris, ton tableau contienderait des tableaux.
J' aurais fait autrement, mais bon !

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Commnet... ?

Moi c'est la façon que j'ai trouver en essaies/erreurs, mais s'il existe un moyen plus performant ou plus logique... je suis preneur

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
salut,

oh que c'est pas propre...

Option Explicit
Private Type MyType
    Col0(5) As Currency
    Col1(5) As Currency
    Col2(5) As String
End Type

Dim ArrayRS(2) As MyType

Private Sub Form_Load()
'   Je remplis mes
arrays
    Dim i As Integer
    For i = 0 To 2
        With ArrayRS(i)
            .Col0(0) = CCur(i * 3)
            .Col0(1) = 2@ 'pas
"#" qui est le DOUBLE, c'est "@" le CURRENCY
            '...
            .Col1(0) = 3.45
            .Col1(1) = 6.25
            '...
            .Col2(0) = "2008-01"
            .Col2(1) = "2008-02"
        End With
    Next i
    
    MsgBox ArrayRS(0).Col2(1)
End Sub

ps : si tu valides le topic alors qu'il n'y a pas eu de bonne réponse, il risque d'y avoir moins de passage, dommage ;)
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
Quant à moi, je pensais à ça :


Dim ArrayRS(3,5) As Currency
Dim Col0(5) As Currency
Dim Col1(5) As Currency
Dim Col2(5) As String


'Je remplis mes arrays
Col0(0) = 1.00
Col0(1) = 2.00
'...
Col1(0) = 3.45
Col1(1) = 6.25
'...
Col2(0) = "2008-01"
Col2(1) = "2008-02"




'Je remplis ma Matrice
ArrayRS(0,0)=Col0(0)
ArrayRS(0,1)=Col0(1)


ArrayRS(1,0)=Col1(0)
ArrayRS(1,1)=Col1(1)


ArrayRS(2,0)=Col2(0)
ArrayRS(2,1)=Col2(1)


Mais je prenderais quand même la méthode PCPT.





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.