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
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