bonjour ,
desolé de vous deranger vu que mon probleme a l'air banale
'voila j'ai deux boucles inbriquées la deuxieme for j=0 to nb_annee... est celle qui me calcule ma somme
'une fois cette somme calculée je voudrai la comparer a un nombre fixe en ajoutant au denominateur un nombre
'tres petit "alpha" bien entendu si ma somme est inferieur a ce nombre fixe je doit prendre alpha negatif ,dans le
'cas contraire je prend alpha positif
'j'ai donc mis une condition d'arret si la difference des deux nombres est inferieur à 0.0001 la boucle sur alpha
'devrais s'arreter puis me mettre ce dernier alpha en colone V a la ligne consideré
'voila j'ai bricolé un code mais qui ne fait pas ce que je veux
'voici la partie du code concernée:

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
        For alpha = 0 To 10 Step 0.0001
        somme = 0
                For j = 0 To nb_annee - 1
                    If Int(nb_mois) = 0 Then
                    taux_spot_1 = Worksheets("Forwards").Cells(7 + 12 * j, 7).Value
                    taux_spot_2 = Worksheets("Forwards").Cells(11 + 12 * j, 7).Value
                    Else
                    taux_spot_1 = Worksheets("Forwards").Cells(Int(nb_mois) + 10 + 12 * j, 7).Value
                    taux_spot_2 = Worksheets("Forwards").Cells(Int(nb_mois) + 11 + 12 * j, 7).Value
                    End If
                            p = nb_mois / 12 + j
                            T = alpha + (g * taux_spot_2 + (30 - g) * taux_spot_1) / 3000
                            somme = somme + Worksheets("Feuil1").Cells(i + 6, 13).Value / (1 + T) ^ p
                Next
                        p = nb_mois / 12 + nb_annee - 1
                        T = alpha + (g * taux_spot_2 + (30 - g) * taux_spot_1) / 3000
                        somme = somme + 100 / ((1 + T) ^ p)
                        diff = Abs(Worksheets("Feuil1").Cells(i + 6, "J").Value - somme)
 
 
                            If Worksheets("Feuil1").Cells(i + 6, "J").Value < _
                            Worksheets("Feuil1").Cells(i + 6, "K").Value Then
                            alpha = alpha
                            Else
                            alpha = -alpha
                            End If
                        If diff <= 0.001 Then
                        Worksheets("Feuil1").Cells(i + 6, "V").Value = alpha
                        Else
                        Worksheets("Feuil1").Cells(i + 6, "V").Value = ""
                        End If
 
          Next
merci beaucoup de votre aide .