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
Partager