IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Calculer moyenne mobile d'une série à partir d'un macro [XL-2010]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Calculer moyenne mobile d'une série à partir d'un macro
    Bonjour,
    voila j'ai fait un macro qui calcule la moyenne mobile d'une série mais à un certain moment ca donne des 0.
    est ce quelqu'un peut m'aider?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Sub somme()
    Dim a, c, moy As Variant
    Dim d, e As Variant
    Range("B1").Value = "moyenne_mobile"
    d = 0
    For e = 2 To Cells(1, 7) + 1
    d = d + Cells(e, 1)
     Selection.NumberFormat = "0.00"
    Next
    Cells(2, 2) = d / Cells(1, 7)
    c = 0
    'cells(1,7) =période
    For c = 1 To 10
    moy = 0
    For a = c * Cells(1, 7) + c To (c + 1) * Cells(1, 7) + c - 1
    moy = moy + Cells(a, 1)
    Next
    Cells(c + 2, 2) = moy / Cells(1, 7)
    Selection.NumberFormat = "0.00"
    Next
    End Sub

  2. #2
    Nouveau membre du Club Avatar de arnaud.123
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 24
    Points : 39
    Points
    39
    Par défaut Demande d'info
    Salut,

    Peux-tu transmettre ton tableau (ou définir les cellules)
    A+

    Arnaud

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut pièce jointe
    ci joint le resultat du macro
    Fichiers attachés Fichiers attachés

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut nombre de cellule pleine d'une colonne
    j'aimerai aussi savoir comment faire pour calculer le nombre de cellule pleine d'une colonne sous VBA.
    Merci d'avance

  5. #5
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Si en G1 tu as la période de calcule de la moyenne mobile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Sub MoyenneMobileDirecte()
    Dim LastLig As Long
    Dim Period As Integer
     
    Application.ScreenUpdating = False
    With Worksheets("Sheet1")
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        .Range("B1").Value = "Moyenne Mobile"
        Period = .Range("G1").Value
        If Period > 0 Then
            With .Range("B2:B" & LastLig - Period + 1)
                .Formula = "=AVERAGE(OFFSET(A2,0,0," & Period & "))"
                .Value = .Value
            End With
        End If
    End With
    End Sub
    ________________________________________________________________

    Sinon, au cas d'un nombre important de données, il est préférable de travailler avec des variables tableaux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub MoyenneMobile()
    Dim LastLig As Long, i As Long
    Dim Period As Integer
    Dim Tb
     
    Application.ScreenUpdating = False
    With Worksheets("Sheet1")
        LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
        Tb = .Range("A1:B" & LastLig)
        Period = .Range("G1").Value
        If Period > 0 Then
            Tb(1, 2) = "Moyenne mobile (Période " & Period & ")"
            For i = 2 To LastLig - Period + 1
                Call MM(Tb, i, Period)
            Next i
            .Range("A1:B" & LastLig) = Tb
        End If
    End With
    End Sub
     
    Private Sub MM(ByRef Tb, ByVal Deb As Long, ByVal Pas As Integer)
    Dim S As Double
    Dim i As Long
     
    For i = Deb To Deb + Pas - 1
        S = S + Tb(i, 1)
    Next i
    Tb(Deb, 2) = S / Pas
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Problème résolu
    Merci le problème est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.5] Calcul Moyenne mobile avec birt
    Par ccmoi dans le forum BIRT
    Réponses: 10
    Dernier message: 29/06/2010, 09h28
  2. comment calculer la somme d'une série
    Par osabri dans le forum Débuter
    Réponses: 10
    Dernier message: 14/03/2010, 16h27
  3. Réponses: 4
    Dernier message: 04/11/2008, 10h12
  4. [XI] Calculer le numéro d'une semaine à partir d'une date
    Par leloup84 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 23/04/2007, 14h49
  5. Calculer cos(x) avec une série
    Par Évariste Galois dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 23/08/2005, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo