Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

array besoin d'aide urgente

3 réponses
Avatar
Elicend_News
Salut

j'ai besoin de quelques coup de mains tres rapidement s'il vous plait sur
les utilisation des array :

1 : comment déplacer la definition d'un array de colonne en colonne :
tableau = (A1:A30000)
ensuite
tableau =(B1:B30000)
(de facon automatique?)

2comment dire que pour chaque ligne de la colonne du tableau défini plus
haut, on a un calcul à faire
genre tableau 1 = Tableau 2 - tableau 3

3 un peu plus dur que 2, comment mettre une condition sur le calcul : si la
ligne i du tableau 1 est suppérieure à la ligne i du tableau 2, alors on a
tableau 1(i)-tableau2(i) sinon, tableau1(i)-tableau3(i)

je crois que c'est tout pour le moment...

merci beaucoup d'avance!!!!

elicend.

--
Encore merci / Thanks a lot !

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .

Be Careful e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________

3 réponses

Avatar
anomymousA
bonjour,

pour déclarer un tableau , d'abord il faut des crochets et pas des
parenthèses. Ensuite si tu veux faire varier ta définition, voici un exemple

colonne="B" ( ou ce que tu veux)
tableau = Evaluate(colonne & "1:" & colonne "30000")

A partir du moment ou tu as défini ton tableau, le repérage des élements est
strictement identique au répérage sur une feuille avec une coordonnées lignes
et une coordonnée colonne

p.e tableau(30000,1) est équivalent à désigner la cellule A30000 si la def
de ton tableau était tableau=[A1:A30000). En conséquence, faire
cells(30000,1)Îlls(29999,1)+cells(30000,1) est équivalent à écrire
tableau(30000,1)=tableau(29999,1)+tableau(30000,1)

esxemple suivant:
colonne = "B"
tableau1 = Evaluate(colonne & "1:" & colonne & "58597")
colonne = "H"
tableau2 = Evaluate(colonne & "1:" & colonne & "58597")
colonne = "M"
tableau3 = Evaluate(colonne & "1:" & colonne & "58597")

if tableau1(58596, 1)>3 then
tableau3(58597, 1) = tableau1(58597, 1) + tableau2(58597, 1)
else
end if

j'ai essayé de faire des additions directes de tableaux mais sans résultat.
Je pense cependant qu'on peut faire des choses comme tableau3 = tableau1

Tu verras , les résultats sont très rapides.

A+


Salut

j'ai besoin de quelques coup de mains tres rapidement s'il vous plait sur
les utilisation des array :

1 : comment déplacer la definition d'un array de colonne en colonne :
tableau = (A1:A30000)
ensuite
tableau =(B1:B30000)
(de facon automatique?)

2comment dire que pour chaque ligne de la colonne du tableau défini plus
haut, on a un calcul à faire
genre tableau 1 = Tableau 2 - tableau 3

3 un peu plus dur que 2, comment mettre une condition sur le calcul : si la
ligne i du tableau 1 est suppérieure à la ligne i du tableau 2, alors on a
tableau 1(i)-tableau2(i) sinon, tableau1(i)-tableau3(i)

je crois que c'est tout pour le moment...

merci beaucoup d'avance!!!!

elicend.

--
Encore merci / Thanks a lot !

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .

Be Careful e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________





Avatar
Daniel
Bonjour.
1. ?
2. Sélectionner le tableau1, entrer la formule matricielle :
=tableau2-tableau3.
3. Entrer la formule matricielle :
=SI(tableau1>tableau2;tableau1-tableau2;tableau1-tableau3)
Cordialement.
Daniel
"Elicend_News" <inconicoAfreePOINTfr> a écrit dans le message de news:
4201e7f7$0$541$
Salut

j'ai besoin de quelques coup de mains tres rapidement s'il vous plait sur
les utilisation des array :

1 : comment déplacer la definition d'un array de colonne en colonne :
tableau = (A1:A30000)
ensuite
tableau =(B1:B30000)
(de facon automatique?)

2comment dire que pour chaque ligne de la colonne du tableau défini plus
haut, on a un calcul à faire
genre tableau 1 = Tableau 2 - tableau 3

3 un peu plus dur que 2, comment mettre une condition sur le calcul : si
la
ligne i du tableau 1 est suppérieure à la ligne i du tableau 2, alors on a
tableau 1(i)-tableau2(i) sinon, tableau1(i)-tableau3(i)

je crois que c'est tout pour le moment...

merci beaucoup d'avance!!!!

elicend.

--
Encore merci / Thanks a lot !

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .

Be Careful e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________




Avatar
Elicend_News
re ;)

voila ce que j'ai réussi à faire pour le moment avec qquechose trouvé sur
excel labo.
ca marche mais la limite parait etre dans les 6000 lignes, au dela, j'ai une
erreur... donc il va faloir que je boucle 5 fois pour faire mes 27000 lignes
(en me mettant autour de 5000 à chaque fois).


merci de votre aide

Sub calcul5()
Dim ArrayData() As Variant
Dim ArrayData2() As Variant
Dim ArrayResultat() As Variant
' effacement de la plage résultats
Range("C11:C7000").ClearContents

' On commence par remplir le arraydata avec les données de la feuille
i = 0
For Each cellule In Sheets("stock").Range("B11:B7000")
ReDim Preserve ArrayData(0 To i)
ArrayData(i) = cellule
i = i + 1
Next cellule

' On commence par remplir le arraydata avec les données de la feuille
i = 0
For Each cellule In Sheets("comA").Range("C11:C7000")
ReDim Preserve ArrayData2(0 To i)
ArrayData2(i) = cellule
i = i + 1
Next cellule
'MsgBox UBound(ArrayData)

For j = 0 To UBound(ArrayData) 'Ubound arraydata renvoie le N° d'index le
plus élevé du tableau,
ReDim Preserve ArrayResultat(0 To j) 'redim preserve permet d'ajouter des
éléments à l'array existant
'sans effacer les éléments déjà présents.
If ArrayData(j) - ArrayData2(j) >= 0 Then
ArrayResultat(j) = ArrayData(j) - ArrayData2(j)
Else
ArrayResultat(j) = 0
End If
Next j

Sheets("stock").Range("C11:C7000").Value Application.WorksheetFunction.Transpose(ArrayResultat) 'Attention, Par
défaut,
'les tableaux sont remplis "en ligne". Pour les réaffecter à une
'plage en colonne il faut les transposer
End Sub

"Daniel" a écrit dans le message de
news:
Bonjour.
1. ?
2. Sélectionner le tableau1, entrer la formule matricielle :
=tableau2-tableau3.
3. Entrer la formule matricielle :
=SI(tableau1>tableau2;tableau1-tableau2;tableau1-tableau3)
Cordialement.
Daniel
"Elicend_News" <inconicoAfreePOINTfr> a écrit dans le message de news:
4201e7f7$0$541$
Salut

j'ai besoin de quelques coup de mains tres rapidement s'il vous plait
sur


les utilisation des array :

1 : comment déplacer la definition d'un array de colonne en colonne :
tableau = (A1:A30000)
ensuite
tableau =(B1:B30000)
(de facon automatique?)

2comment dire que pour chaque ligne de la colonne du tableau défini plus
haut, on a un calcul à faire
genre tableau 1 = Tableau 2 - tableau 3

3 un peu plus dur que 2, comment mettre une condition sur le calcul : si
la
ligne i du tableau 1 est suppérieure à la ligne i du tableau 2, alors on
a


tableau 1(i)-tableau2(i) sinon, tableau1(i)-tableau3(i)

je crois que c'est tout pour le moment...

merci beaucoup d'avance!!!!

elicend.

--
Encore merci / Thanks a lot !

@ plus
Elicend
________________________

Attention adresse e-mail :
inconicoAfreePOINTfr
A = @
POINT = .

Be Careful e-mail :
inconicoAfreePOINTfr
A = @
POINT = .
________________________