begin process at 2012 02 14 07:49:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

VBA/Excel : moyenne mobile


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

VBA/Excel : moyenne mobile

vendredi 4 mars 2005 à 16:29:26 | VBA/Excel : moyenne mobile

nico39

Bonjour à tous,

j'ai une série de données (1 colonne) aux valeurs assez chaotiques à analyser et je voudrais en connaître les tendances. Je sais qu'Excel peut afficher des courbes de tendances sur des graphiques, et notamment une "moyenne mobile". Je voudrais alors savoir s'il est possible d'appliquer cette moyenne mobile sur ma série de données, mais en récupérant les valeurs calculées par Excel..

A défaut, serait-il possible de programmer une macro " moyenne mobile" sur une série de données sans utiliser un graphique?

J'espère que mes explications sont assez claires.
Je vous remercie d'avance pour toute l'aide que vous pourrez m'apporter.

Amateurement vôtre... 

samedi 5 mars 2005 à 15:44:52 | Re : VBA/Excel : moyenne mobile

cqui789

Quelle sont les equations mathematiques necessaires pour faire ce que tu veux?


mardi 8 mars 2005 à 12:38:42 | Re : VBA/Excel : moyenne mobile

nico39

Salut cqui789,

Merci de ta réponse.
La formule à appliquer est assez simple: il suffit de faire une moyenne toute bête sur une nombre déterminé de cellules, et ce, en se décalant d'une cellule après l'autre.
Je m'explique:
soit une série de données  A1:A40
Dans la colonne B, je vais en faire une moyenne mobile toutes les 10 valeurs.
Ainsi en B9 ira la moyenne de A1:A9 (càd les 10 1ères valeurs), en B10 ira celle de A2:A10, et ainsi de suite.
J'espère que cela est plus clair.

Je viens en fait de parvenir à un code qui marche plutôt bien.
Dans le cas que je te'ai présenté plus haut, cela donne:

sub moy_mobil()
 
periode=10  'nombre de valeurs dont on fait la moyenne
Set Cellule = Cells(periode - 1 , 2)
Do Until IsEmpty(Cellule.Offset(1 - periode, -1)) = True
      'Définition de la plage de valeurs étudiée à chaque fois
  Set debut_Periode = Cellule.Offset(1 - periode, -1)
  Set fin_Periode = Cellule.Offset(0, -1)
  Set Plage = Range(debut_Periode, fin_Periode)
      'Calcul de la valeur de la moyenne
  moy = WorksheetFunction.Average(Plage)
  Cellule.Value = moy
      'Mouvement de la cellule cible de la moyenne
  Set Cellule = Cellule.Offset(1)
Loop
End Sub

Voilà, j'espère que ce code tient la route et qu'il pourra profiter à d'autres. Bien sûr, les paramètres tels que "periode" et "Cellule" varieront selon la configuration rencontrée ou souhaitée.

Merci encore pour ton intérêt.


Amateurement vôtre... 

mardi 8 mars 2005 à 16:10:05 | Re : VBA/Excel : moyenne mobile

cqui789

Et si tu remplacait:

  Set debut_Periode = Cellule.Offset(1 - periode, -1)
  Set fin_Periode = Cellule.Offset(0, -1)
  Set Plage = Range(debut_Periode, fin_Periode)
      'Calcul de la valeur de la moyenne
  moy = WorksheetFunction.Average(Plage)
  Cellule.Value = moy
      'Mouvement de la cellule cible de la moyenne
  Set Cellule = Cellule.Offset(1)
 par:

cellule.FormulaR1C1 = "=AVERAGE(R[" & 1 - periode & "]C[-1]:RC[-1])"

si tu modifie les valeurs les moyennes se mettent a jour
mercredi 9 mars 2005 à 09:32:09 | Re : VBA/Excel : moyenne mobile

nico39

Salut cqui789,
Merci pour cette astuce. Mon code est un peu plus léger.

Je voulais savoir si toi ou des gens du forum connaissiez bien tout ce qui est formulaire. En effet je voudrais bien faire apparaître un formulaire durant l'exécution de ma précédente macro pour demander à l'utilisateur une valeur pour la période (cf plus haut).
Seulement, je ne sais pas comment récupérer les valeurs recueillies dans un tel formulaire (dans une Textbox p.e.).

Merci d'avance pour toute votre aide.

Amateurement vôtre... 

mercredi 9 mars 2005 à 21:07:36 | Re : VBA/Excel : moyenne mobile

cqui789

Réponse acceptée !
desole, je ne connait pas VBA, juste Excel et VB (un comble, non?)

as-tu cherche avec l'option recherche du site?

si rien ne vient, pose une nouvelle question sur le forum.




Cette discussion est classée dans : données, excel, série, moyenne, mobile


Répondre à ce message

Sujets en rapport avec ce message

macro pour moyenne hebdomadaire [ par oilman ] Bonjour, je dois calculer la moyenne hebdomadaires de données qui me sont données journalierment. voici un extrait de mon fichier excel Date valeur Se help: Comment copier les données d'un tableau Excel dans un tablo VB [ par ilhaseb ] J'ai un tableau excel (1000 lignes X 12 col) dont je voudrais copier les données dans un tableau VB de même taille.- Comment faire: l'instruction open base de données sous excel [ par guingoy ] Bonjour,Voilà, je développe un petit programe sous excel avec VB6.A l'aide d'un MSform (notamment un textbox) j'aimerais alimenter une base de données Problème d'emission de données sur un port série [ par Lolo ] Plusieurs collègues et moi même avont constaté un bug du contrôle activeX MSComm32.ocxEn effet lors de l'envoi de données sur le port série en XOn Xof Problème d'emission de données sur un port série [ par Lolo ] Plusieurs collègues et moi même avont constaté un bug du contrôle activeX MSComm32.ocxEn effet lors de l'envoi de données sur le port série en XOn Xof données excel sous VB [ par louis ] comment lire le contenu des cellules d'un fichier excel sous VB données pour Graph Excel [ par gus ] Je galere actuellement pour foare un graphique sous excel, a partir d'un nombre de données variables.J utilise la commande suivante, mais je sais pas Lien entre vb et Excel ---> Extraire les données d'un bdd pour faire des graphiques [ par Krasba ] J'ai mon appli qui gere une bdd. Mais il fo que je fasse des graphiques donc il fo que j'exporte les données vers une feuille excel et ensuite que je transfert de données de VBA vers ACCESS [ par pearl ] j'ai créé une application excel et je voudrais récupérer les données résultant du traitement pour les inserer automatiquement dans une Table Access.En


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,089 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales