Aide code VBA -calcul Moyenne mobile-

Aide code VBA -calcul Moyenne mobile- - VB/VBA/VBS - Programmation

Marsh Posté le 10-05-2008 à 21:09:02    

Bonjour,  
Depuis tout à l'heure je galère alors je me tourne vers vous.
Je souhaite calculer des moyennes mobiles à 9 périodes  avec le code VBA. ( je précise que que je débutant  :) )
mes données sont disposées comme suit:   feuil1 : B1=titre;  De B2 à B1300 il y a  les prix.  la feuil2 est renommée resultats.
Voici mon code:  
 
Option Explicit
Option Base 1
Sub moymob9()
Dim i, n As Integer
Dim tableau() As Double
Dim plage As Variant
Worksheets("feuil1" ).Select
Set plage = Range(Cells(2, 2), Cells(2, 2).End(xlDown))
'compte le nombre de cellules de la plage
n = WorksheetFunction.Count(plage)
ReDim tableau(n, 1)
For i = 10 To n
       tableau(i, 1) = WorksheetFunction.Average(Cells(i - 8, 2), Cells(i, 2))
Next i
Worksheets("resultats" ).Activate
Columns(1).Clear
For i = 2 To n
   Cells(i, 1).Value = tableau(i, 1)
Next i
End Sub
 
Ce code me donne de faux resultats. J'en conclue que c'est mon code  qui est faux. Est-ce que vous pourriez me dire à quel ca coince svp?
 Mille Merci!

Reply

Marsh Posté le 10-05-2008 à 21:09:02   

Reply

Marsh Posté le 11-05-2008 à 10:46:04    

bonjour,
c'est normal tu as un tableau(i,1) avec i allant de 10 à n et quand tu recupere les valeur tu dis que i va de 2 à n  
 
moi je changerai juste
 
For i = 10 To n
somme = Cells(i - 8, 2) + Cells(i - 7, 2) + Cells(i - 6, 2) + Cells(i - 5, 2) + Cells(i - 4, 2) + Cells(i - 3, 2) + Cells(i - 2, 2) + Cells(i - 1, 2) + Cells(i, 2)
tableau(i, 1) = somme / 9
Next i
 
For i=2 to n-7
cells(i,1)=tableau(i+8,1)
next i
 
ca devrait marcher


Message édité par 86vomito33 le 11-05-2008 à 10:52:51
Reply

Marsh Posté le 11-05-2008 à 13:46:51    

Y a moyen de faire cela sont connaître le code en enregistrant via excel les opérations que tu veux effectuer puis consulter le code.
 
c'est aussi simple que ça!!!!


---------------
Exercices résolus de comptabilité générale
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed