Bonjour,

Je présente tout d'abord la situation :

Sur La colonne 3 on a notre référence r.
Sur la colonne 4 on a nos valeurs.
Je somme les valeurs de la colonne 4 en partant vers le bas de la cellule sur la même ligne que la référence et cette somme doit être inférieure ou égale à notre référence.
J'injecte ensuite dans ce calcul un compteur J pour me donner le nombre de lignes sur lesquelles la somme s'est faite.
Ensuite avec J je retrouve la ligne juste après la dernière ligne sommé : Tout ça pour car en fait moi depuis le début ce que je recherche c'est de sommer les valeurs de la colonne 4 pour avoir une somme juste au dessus de ma référence.

Le soucis que j'ai c'est que j'ai remarqué en regardant la valeur de mon J c'est que l'itération continue jusqu'à la première ligne alors que moi je veux qu'elle s'arrête à la ligne où la condition c'est plus satisfaite ( voir le code ).

Merci pour votre aide.

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
 
 
Sub calcul()
 
Dim f As Long, r As Long, C As Long, J As Long
 
f = ActiveCell.Row
r = Cells(f, 3).Value
 
C = 0
J = 0
 
For i = f To 2 Step -1
 
     If C + Cells(i, 4).Value <= r Then
     C = C + Cells(i, 4): Cells(f, 14) = C
     J = J + 1
     End If
 
 
 
Next i
Cells(f, 18) = J
X = f - J
Cells(f, 19) = X
If Cells(X, 4) <> "" Then
Cells(f, 15).Value = Cells(f, 14).Value + Cells(X, 4).Value
Else
MsgBox "Données historiques insuffisantes"
Cells(f, 15) = Cells(f, 14) * (J + 1) / J
Cells(f, 11).Interior.Color = RGB(255, 165, 0)
End If
 
Cells(f, 14).EntireColumn.Hidden = False
Cells(f, 15).EntireColumn.Hidden = False
Cells(f, 16) = Cells(f, 3) / (Cells(f, 15) / (J + 1))
Cells(f, 16).EntireColumn.Hidden = False
 
 
Cells(f, 11) = Cells(f, 16)
 
End Sub