Remplissage d'un tableau

fourmi4x

XLDnaute Junior
Bonjour,

je sollicite à nouveau de l'aide après une prise de tête sur un truc sûrement tout bête...

je souhaite copier les données d'une BDD dans un tableau dans une nouvelle feuille, afin de pouvoir utiliser la fonction average sur ce nouveau tableau (fonction qui me permettra de créer un deuxieme tableau dans une troisieme feuille, qui regroupera les moyennes calculées à chaque fois). Le probleme c'est que je ne sais pas comment remplir ce tableau...voila le programme :

Private Sub Calcul1_Click()

Dim Cellule As Range
Dim case1 As Range, case2 As Range
Dim case3 As Range, case4 As Range
Dim NbreLign As Long
Dim NbreCol As Byte
Dim x As Integer, z As Integer
Dim tableau() As Integer

'vérification de la date rentrée par l'utilisateur
Worksheets("CAC40").Activate
Set Cellule = Worksheets("CAC40").Range("A:A").Find(CDate(today)).Offset(0, 7)
If Cellule Is Nothing Then
MsgBox "Le jour saisi n'est pas un jour de trading"

Else

z = periode.Value
ReDim tableau(z)

'lancement de la boucle

For x = 0 To 252

'Nombre de lignes et de colonnes totales à prendre en compte

NbreLign = -z
NbreCol = 0

'Sélection de la plage souhaitée

Range(Cellule.Address, Cellule.Offset(NbreLign, NbreCol)).Select
Selection.Copy
Worksheets("vol_histo").Activate
Worksheets("vol_histo").Range("A1").Offset(0, x).PasteSpecial Paste:=xlPasteValues

'calcul de la moyenne dans une troisième feuille


Set case1 = Worksheets("vol_histo").Range("A1").Offset(0, x)
Set case2 = Worksheets("vol_histo").Range("A1").Offset(z, x)
Set tableau() = Range(case1, case2)

ici il me met qu'il ne peut pas affecter au tableau



Worksheets("vol_histo2").Activate
Worksheets("vol_histo2").Range("A1").Offset(x, 0) = "=Average(tableau)"


'création d'un nouveau tableau avec toutes les moyennes

Set case3 = Worksheets("vol_histo2").Range("A1")
Set case4 = Worksheets("vol_histo2").Range("A1").Offset(x, 0)
Set tableau2() = Range(case3, case4)


x = x + 1


Next x

End If

Application.CutCopyMode = False

End Sub



je met en fichier joint le .xls même si je ne pense qu'il soit nécessaire : c'est juste que je manque d'informations sur les différentes façons de créer un tableau...

merci d'avance à ceux qui pourront répondre :)

xavier
 

Hervé

XLDnaute Barbatruc
Re : Remplissage d'un tableau

bonsoir :)

j'ai pas tout suivi à ton code, surtout qu'ils nous en manque un peu apparement.

par contre, pour ton souci de set tableau()=, voici quelques mots d'explication.

set permet d'initialiser une variable de type objet (une cellule, une feuille, un classeur), alors que dans ton code tableau est une variable de type tableau dynamique (dim tableau() et un peu plus loin redim tableau(z)).

en somme ce sont deux notions différentes que tu essayes de marier.

soit tu travailles avec un range :

dim tableau as range
.....
set tableau = Range(case1, case2)

soit tu travailles avec un tableau :

dim tableau as integer

'redim tableau(z) 'surement à supprimer

tableau=range(case1, case2)

peut etre pourrais tu nous faire simplement un fichier exemple sans toutes les données pour contourner le problème de poids.

salut


EDITION : je suis pas sur de ta syntaxe avec range(case1, case2), il me semble qu'il manque un union quelque part, je testerai si ceci t'interesse.



 

fourmi4x

XLDnaute Junior
Re : Remplissage d'un tableau

coucou
merci pour ces explications :)

mais je n'arrive toujours pas à faire marcher ce tableau...

j'ai donc essayé de mettre :

Set case1 = Worksheets("vol_histo").Range("A1").Offset(0, x)
Set case2 = Worksheets("vol_histo").Range("A1").Offset(z, x)
Set tableau = Range(case1, case2)

Worksheets("vol_histo2").Activate
Worksheets("vol_histo2").Range("A1").Offset(x, 0) = "=Average(tableau)"


mais il me deroule la macro en me mettant une succession de =MOYENNE(tableau) dans excel...

idem quand j'essaye average(case1, case2) ou même average(vol_histo!case1:case2) ...il me met =MOYENNE(case1, case2) ou l'autre...



donc je ne sais pas si mon tableau est bien rempli et que il y a un problème de traduction de "tableau" ou "case1, case2" sous excel, ou si mon tableau et mes cases ne sont tout simplement pas remplies/affectées...

ouin.

je n'arrive pas à réduire le fichier donc je le met en ligne à cette adresse au cas où :)


Ce lien n'existe plus
 

Discussions similaires

Réponses
2
Affichages
152

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm