Bonjour

Le but de ce code est de faire une moyenne avec une selection de cellule qui varie d une ligne par jour.

Le code pointe sur la derniere ligne pleine et calcul la moyenne sur les 5 jours précédent. Derniere ligne pleine est la ligne 145.

Le résultat de ce calcul est dans la cellule M57.

Cependant => le code me renvoie sur la moyenne des datas lignes 198 - 203 à la place de la ligne 145 à 140

l'idee c est que chaque jour une ligne s ajoutera et chaque jour ma moyenne se calculera sur les 5 dernieres lignes. Donc demain ça sera la moyenne de la ligne 141 à 146

Pourriez vous m'aider à comprendre ou se situe mon erreur ?

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Sub LR()
 
 
'STEP 1 : Extend formulas last line main sheet
'-------------------------------------------------------------------------
    Dim x   As Long
    Dim y   As Long
 
    Application.ScreenUpdating = False
 
    With ActiveSheet
'Find last row in column A
 
        x = .Cells(.Rows.Count, 1).End(xlUp).Row
 
 
'Find last column for row X
 
        y = .Cells(x, .Columns.Count).End(xlToLeft).Column
 
 
 
'With range [x1:xy]
        With .Cells(x, 1).Resize(, y)
            .Copy
            With .Offset(1)
                .PasteSpecial xlPasteFormats
                .PasteSpecial xlPasteFormulas
            End With
        End With
    End With
 
    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
    End With
'-------------------------------------------------------------
 
 
'STEP 2 : Average Daily
'-------------------------------------------------------------------------
Dim x1 As Long
Dim x2 As Long
Dim txtFormula As String
 
With ActiveSheet
x1 = .Cells(.Rows.Count, 1).End(xlUp).Row
x2 = x1 - 5
 
txtFormula = "= Average(R" & x1 & "C3:R" & x2 & "C3)"
Range("M57").Formula = txtFormula
 
End With
 
End Sub