OVH Cloud OVH Cloud

Tableau Array()

6 réponses
Avatar
Serge
Bonjour,


J'ai trois tableaux :
Arr1(i) pour l'année 2001
Arr2(i) pour l'année 2002
Arr3(i) pour l'année 2003
Arr4(i) pour l'année 2004
Avec i qui varie de 1 à 12 ( pour le mois)

Je stocke à l'interrieur des mes tableaux Arr..(i). des chiffres d'affaire
Comment faire un code avec 2 compteurs

Arr ..compteur de 1 à 4 ( compteur de 1 à 12) = cell( x, z)

Merci et bonnes fêtes à tous

6 réponses

Avatar
Bourby
bonjour,

Puisque tes trois tableaux sont quatre, je te propose de les rebaptiser
Athos, Porthos, Aramis et d'Artagnan.

Ensuite, tu crées un tableau à 4x12 = 48 valeurs, que tu appelles fort à
propos LesTroisMousquetaires.

Le passage des petits tableaux (indices k=[1,4] et q=[1,12]) au grand
tableau (indice m = [1,48]) obéit à la logique:
m = 12 * (k-1) + q.

Si cette arithmétique te rebute, LesTroisMousquetaires peut être un tableau
(4,12).

Mais dans tous les cas je te recommande de travailler avec un seul tableau
de données, pas avec 4.
(Il existe peut-être un astuce pour travailler comme tu l'imagines, mais le
code sera forcément moins lisible, et sans doute plus lent qu'avec un unique
tableau).

Espérant t'avoir aidé, je propose une devise pour ce forum:

TOUS POUR UN, UN POUR TOUS

Cordialement

Bourby

"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message news:
41d1ad5a$0$301$
Bonjour,


J'ai trois tableaux :
Arr1(i) pour l'année 2001
Arr2(i) pour l'année 2002
Arr3(i) pour l'année 2003
Arr4(i) pour l'année 2004
Avec i qui varie de 1 à 12 ( pour le mois)

Je stocke à l'interrieur des mes tableaux Arr..(i). des chiffres d'affaire
Comment faire un code avec 2 compteurs

Arr ..compteur de 1 à 4 ( compteur de 1 à 12) = cell( x, z)

Merci et bonnes fêtes à tous




Avatar
Gaenonius
Essaye un tableau à deux dimensions :

Sub essai()
Dim Tablo(1 To 12, 1 To 4)
For i = 1 To 12
Tablo(i, 1) = Format(DateSerial(Year(Date), i, 1), "mmmm")
For j = 1 To 4
Tablo(i, 2) = 2000 + j
Next j
Next i
MsgBox Tablo(12, 1) & " " & Tablo(4, 2)
End Sub

En réservant la deuxième dimension à l'année, tu pourras plus tard
redimensionner ton tableau pour ajouter des années avec une instruction comme,
par exemple :

Redim Preserve Tablo(1 To 12, 1 To 5)

Par ailleurs, si tes données sont dans une plage de cellules, tu peux l'affecter
directement à un tableau, lequel sera automatiquement à deux dimensions. En
supposant en A1 janvier, en B1 2001, en A2 février, en B2 2001 etc :

Sub essai2()
Dim Tablo
Tablo = Range("A1:B48")
MsgBox Tablo(48, 1) & " " & Tablo(48, 2)
End Sub

--
Gaenonius

Bonjour,


J'ai trois tableaux :
Arr1(i) pour l'année 2001
Arr2(i) pour l'année 2002
Arr3(i) pour l'année 2003
Arr4(i) pour l'année 2004
Avec i qui varie de 1 à 12 ( pour le mois)

Je stocke à l'interrieur des mes tableaux Arr..(i). des chiffres d'affaire
Comment faire un code avec 2 compteurs

Arr ..compteur de 1 à 4 ( compteur de 1 à 12) = cell( x, z)

Merci et bonnes fêtes à tous




Avatar
Jacquouille
Encore un qui n'a pas compris.
TOUS POUR UN, UN PORTO
et non

TOUS POUR UN, UN POUR TOUS
Ceci dit, ton réflexe des 3 Mousquetaires pour les 4 tableaux m'a bien plu.

Je vote donc PORTOi -))

--
Bien amicalmement,
Vivement conseillés:
http://www.excelabo.net
http://jacxl.free.fr/mpfe/trombino.html
http://dj.joss.free.fr/netiquet.htm
Jacquouille.

"Bourby" a écrit dans le message de news:

bonjour,

Puisque tes trois tableaux sont quatre, je te propose de les rebaptiser
Athos, Porthos, Aramis et d'Artagnan.

Ensuite, tu crées un tableau à 4x12 = 48 valeurs, que tu appelles fort à
propos LesTroisMousquetaires.

Le passage des petits tableaux (indices k=[1,4] et q=[1,12]) au grand
tableau (indice m = [1,48]) obéit à la logique:
m = 12 * (k-1) + q.

Si cette arithmétique te rebute, LesTroisMousquetaires peut être un
tableau
(4,12).

Mais dans tous les cas je te recommande de travailler avec un seul tableau
de données, pas avec 4.
(Il existe peut-être un astuce pour travailler comme tu l'imagines, mais
le
code sera forcément moins lisible, et sans doute plus lent qu'avec un
unique
tableau).

Espérant t'avoir aidé, je propose une devise pour ce forum:

TOUS POUR UN, UN POUR TOUS

Cordialement

Bourby

"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message news:
41d1ad5a$0$301$
Bonjour,


J'ai trois tableaux :
Arr1(i) pour l'année 2001
Arr2(i) pour l'année 2002
Arr3(i) pour l'année 2003
Arr4(i) pour l'année 2004
Avec i qui varie de 1 à 12 ( pour le mois)

Je stocke à l'interrieur des mes tableaux Arr..(i). des chiffres
d'affaire
Comment faire un code avec 2 compteurs

Arr ..compteur de 1 à 4 ( compteur de 1 à 12) = cell( x, z)

Merci et bonnes fêtes à tous








Avatar
Pounet95
Bonsoir à tous,
Juste une question. Est-ce que Dim Toto(2,4) as Integer me permet de définir
les élements Toto(0,0) à Toto(2,4) ou alors les élements Toto(1,1) à
Toto(2,4) ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Bourby" a écrit dans le message de news:

bonjour,

Puisque tes trois tableaux sont quatre, je te propose de les rebaptiser
Athos, Porthos, Aramis et d'Artagnan.

Ensuite, tu crées un tableau à 4x12 = 48 valeurs, que tu appelles fort à
propos LesTroisMousquetaires.

Le passage des petits tableaux (indices k=[1,4] et q=[1,12]) au grand
tableau (indice m = [1,48]) obéit à la logique:
m = 12 * (k-1) + q.

Si cette arithmétique te rebute, LesTroisMousquetaires peut être un
tableau
(4,12).

Mais dans tous les cas je te recommande de travailler avec un seul tableau
de données, pas avec 4.
(Il existe peut-être un astuce pour travailler comme tu l'imagines, mais
le
code sera forcément moins lisible, et sans doute plus lent qu'avec un
unique
tableau).

Espérant t'avoir aidé, je propose une devise pour ce forum:

TOUS POUR UN, UN POUR TOUS

Cordialement

Bourby

"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message news:
41d1ad5a$0$301$
Bonjour,


J'ai trois tableaux :
Arr1(i) pour l'année 2001
Arr2(i) pour l'année 2002
Arr3(i) pour l'année 2003
Arr4(i) pour l'année 2004
Avec i qui varie de 1 à 12 ( pour le mois)

Je stocke à l'interrieur des mes tableaux Arr..(i). des chiffres
d'affaire
Comment faire un code avec 2 compteurs

Arr ..compteur de 1 à 4 ( compteur de 1 à 12) = cell( x, z)

Merci et bonnes fêtes à tous








Avatar
Patrick Fredin
Bonjour,

Cela dépend du paramètre du module où se trouve le code. S'il n'y a rien,
c'est de 0 à 2. Si tu commences le module par

Option Base 1

ce sera de 1 à 2.

--
Patrick

"Pounet95" wrote in message
news:%
Bonsoir à tous,
Juste une question. Est-ce que Dim Toto(2,4) as Integer me permet de
définir
les élements Toto(0,0) à Toto(2,4) ou alors les élements Toto(1,1) à
Toto(2,4) ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/

"Bourby" a écrit dans le message de news:

bonjour,

Puisque tes trois tableaux sont quatre, je te propose de les rebaptiser
Athos, Porthos, Aramis et d'Artagnan.

Ensuite, tu crées un tableau à 4x12 = 48 valeurs, que tu appelles fort à
propos LesTroisMousquetaires.

Le passage des petits tableaux (indices k=[1,4] et q=[1,12]) au grand
tableau (indice m = [1,48]) obéit à la logique:
m = 12 * (k-1) + q.

Si cette arithmétique te rebute, LesTroisMousquetaires peut être un
tableau
(4,12).

Mais dans tous les cas je te recommande de travailler avec un seul
tableau
de données, pas avec 4.
(Il existe peut-être un astuce pour travailler comme tu l'imagines, mais
le
code sera forcément moins lisible, et sans doute plus lent qu'avec un
unique
tableau).

Espérant t'avoir aidé, je propose une devise pour ce forum:

TOUS POUR UN, UN POUR TOUS

Cordialement

Bourby

"Serge" <serge.g8[NO SPAM]@laposte.net> a écrit dans le message news:
41d1ad5a$0$301$
Bonjour,


J'ai trois tableaux :
Arr1(i) pour l'année 2001
Arr2(i) pour l'année 2002
Arr3(i) pour l'année 2003
Arr4(i) pour l'année 2004
Avec i qui varie de 1 à 12 ( pour le mois)

Je stocke à l'interrieur des mes tableaux Arr..(i). des chiffres
d'affaire
Comment faire un code avec 2 compteurs

Arr ..compteur de 1 à 4 ( compteur de 1 à 12) = cell( x, z)

Merci et bonnes fêtes à tous











Avatar
Daniel.M
Bonjour Serge,

Comme on te l'a dit, il vaut mieux travaillé avec des tableaux à 2 dimensions.
Il suffit alors d'une seule instruction pour faire passer la plage (objet Range)
au tableau (et vice-versa).

Donc, convertis tes 4 tableaux (d'une dimension) en un seul (à 2 dimensions)

ArrTot = Array(Arr1, Arr2, Arr3, Arr4)
ArrTot = Application.Transpose(Application.Transpose(ArrTot))

Ensuite, tu assignes le tableau à une plage à l'aide d'une seule instruction:
Range("A5:L8").Value = ArrTot

Salutations,

Daniel M.

"Serge" <serge.g8[NO SPAM]@laposte.net> wrote in message
news:41d1ad5a$0$301$
Bonjour,


J'ai trois tableaux :
Arr1(i) pour l'année 2001
Arr2(i) pour l'année 2002
Arr3(i) pour l'année 2003
Arr4(i) pour l'année 2004
Avec i qui varie de 1 à 12 ( pour le mois)

Je stocke à l'interrieur des mes tableaux Arr..(i). des chiffres d'affaire
Comment faire un code avec 2 compteurs

Arr ..compteur de 1 à 4 ( compteur de 1 à 12) = cell( x, z)

Merci et bonnes fêtes à tous