Correction de l'erreur
dianbobo
Messages postés
167
Statut
Membre
-
dianbobo Messages postés 167 Statut Membre -
dianbobo Messages postés 167 Statut Membre -
Bonjour,
bonjour j'ai envi d'ecrire la formule ci-dessous dans le code en faisant varier les indices de la colonne L DE i=6 jusqu'a 100 par exemple
peut on ecrire :
merci de votre aide
bonjour j'ai envi d'ecrire la formule ci-dessous dans le code en faisant varier les indices de la colonne L DE i=6 jusqu'a 100 par exemple
NombreDeJour(i) = Range("L6" ) - Range("A2" )
NombreDeJour(i) = Range("L7" ) - Range("A2" )
NombreDeJour(i) = Range("L8" ) - Range("A2" ).........
peut on ecrire :
NombreDeJour(i) = Range("L"&(i)&"" ) - Range("A2" )?
merci de votre aide
A voir également:
- Correction de l'erreur
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Activer correction automatique android - Guide
- Le correcteur automatique de votre smartphone vous rend fou ? Voici comment le désactiver - Accueil - Mobile
- Mode correction word - Guide
- Erreur upes 1025 - Forum Téléviseurs
11 réponses
Salut,
Oui normalement tu peux l'écrire, mais si ça ne fonctionne pas tu peux écrire :
Tiens moi au courant si ça fonctionne !!
Oui normalement tu peux l'écrire, mais si ça ne fonctionne pas tu peux écrire :
NombreDeJour(i) = Cint(Range("L"&(i)&"" )) - Cint(Range("A2" ))
Tiens moi au courant si ça fonctionne !!
j'ai pas pu verifier si ça fonctionne vu que mon code me marque une erreur ;"erreur de compilation constante requise!!
je sais qu'il y a un probleme dans le code mais je ne sais pas comment le resoudre
en effet j'ai declaré des variables qui dependent d'une variable i (i parcours les lignes a partir de la ligne 6)
mon objectif c'est de fixer i a chaque fois et de faire les calculs .
si quelqu'un veut bien me guider
merci
je sais qu'il y a un probleme dans le code mais je ne sais pas comment le resoudre
en effet j'ai declaré des variables qui dependent d'une variable i (i parcours les lignes a partir de la ligne 6)
mon objectif c'est de fixer i a chaque fois et de faire les calculs .
Sub prixspot()
Dim NombreDeJour, NbreAnnées As Variant
Dim x(i) As Double
Dim x1(i), x2(i), v(i), T(i), p(i), g(i) As Variant
NombreDeJour(i) = Cells(i, 12).Value - Cells(2, 1).Value 'definir le nombre de jours entre aujourd'hui et la date de fin
NbreAnnées(i) = (Cells(i, 8).Value - Cells(2, 1).Value) / 360
x(i) = NombreDeJour(i) / 30 'conversion du nombre de jours en mois a la ligne i
x1(i) = Int(x(i)) 'partie entiere de x(i)
x2(i) = x1(i) + 1
v(i) = Int(NbreAnnées(i)) 'partie entiere du nombre d'année de la ligne i
For i = 6 To 10000
For j = 1 To v(i) + 1
p(j) = x(i) / 12 + (j - 1)
T(j) = (g(i) * Worksheets("&Forward&").Cells(x2(i) + 11, 7).Value + 12 * (j - 1) + (30 - g(i)) * (Worksheets("&Forward&").Cells(x1(i) + 11, 7).Value + 12 * (j - 1))) / 30
g(i) = (x(i) - x1(i)) * 30
Cells(i, 11).FormulaR1C1 = Cells(i, 10).Value / (1 + T(j)) ^ p(j) + 100 / (1 + T(v(i) + 1)) ^ p(v(i) + 1)
Next j
Next i
End Sub
si quelqu'un veut bien me guider
merci
voila je croix que j'ai vu les premieres erreurs que j'ai faites
je devais definir mes variables sous forme de tableau si je ne me trompe
donc voila le code ci-dessous si quelqu'un veux bien m'aider a l'ameliorer
merci
je devais definir mes variables sous forme de tableau si je ne me trompe
donc voila le code ci-dessous si quelqu'un veux bien m'aider a l'ameliorer
Option Base 1
Sub prixspot()
Dim NombreDeJour(), NbreAnnées() As Double
Dim x(), T(), p(), g() As Double
Dim i As Integer, j As Integer, x1() As Integer, x2() As Integer, v() As Integer
For i = 6 To 10000
NombreDeJour(i) = Cells(i, 12).Value - Cells(2, 1).Value 'definir le nombre de jours entre aujourd'hui et la date de fin
NbreAnnées(i) = (Cells(i, 8).Value - Cells(2, 1).Value) / 360
x(i) = NombreDeJour(i) / 30 'conversion du nombre de jours en mois a la ligne i
x1(i) = Int(x(i)) 'partie entiere de x(i)
x2(i) = x1(i) + 1
v(i) = Int(NbreAnnées(i)) 'partie entiere du nombre d'année de la ligne i
For j = 1 To v(i) + 1
p(j) = x(i) / 12 + (j - 1)
T(j) = (g(i) * Worksheets("&Forwards&").Cells(x2(i) + 11, 7).Value + 12 * (j - 1) + (30 - g(i)) * (Worksheets("&Forwards&").Cells(x1(i) + 11, 7).Value + 12 * (j - 1))) / 30
g(i) = (x(i) - x1(i)) * 30
Cells(i, 11).FormulaR1C1 = Cells(i, 10).Value / (1 + T(j)) ^ p(j) + 100 / (1 + T(v(i) + 1)) ^ p(v(i) + 1)
Next j
Next i
End Sub
merci
bonjour j'ai modifier le premier code que j'ai posté mais j'ai une erreur ici du type"l'indice n'appartient pas a la selection."
dans la feuil1 j'ai un tableau de h6 a o11
en colonne H j'ai
h6=Date fin contrat
h7=11/08/2010
h8=11/04/2012
h9=03/10/2011
h10=16/04/2012
h11=22/07/2013
en colonne k j'ai
k6=spot
k7=? k8=? k9=? k10=? k11=? (c'est la colonne pour faire la somme)
en colonne L J'ai
L6=Dte Premier coupon
L7=vide
L8=11/04/2011
L9=03/10/2011
L10=16/04/2011
L11=22/07/2011
en colonne M j'ai
m6=TF-Post
m7=3,13
m8=0,25
m9=0,50
m10=4,50
m11=5,00
en colonne N
n6=Nombre D'années
n7=0
n8=3
n9=2
n10=5
n11=3
en colonne O j'ai
o6=Nbre de jours
o7=vide
o8=40644
o9=40819
o10=40649
o11=40746
dans ma feuille 2 ("forwards) j'ai une colonne de valeur a partir de la ligne 5 en colonne G
je m'explique dans la colonne en jaune je voudrai avoir des resultats de la façon ci-dessous:
1)la cellule L7 etant vide alors on va a la cellule suivante
pour calculer K8 j'ai besoin de:
*du nombre d'anné entre aujourd'hui et H8 =N8 (ce nombre d'année est en N8)
*du nombre de jours entre aujourd'hui et L8
ensuite je converti ce nombre de jours en mois 'dans ma macro c'est mon tableau "x"
x(8)=O8/30
*j'evalue la partie entiere de x(8) dans ma macro j'ai mi
x1(8)=Int(x(8))
*j'ajoute +1 a la partie entiere
x2(8)=x1(8)+1
*ma boucle sur j parcourt le nombre d'année dans ma macro j'ai mi: v(8)=N8
*ma condition while c'est pour dire que je fait la boucle sur j tant que mon nombre d'année est >0
pour K8 j'evalue alors p(j) j=1 jusqu'à v(8) ou v(8) est le nombre d'anné en N8 DONC P(j)=x(8)/12+(j-1) puis j'evalue T(j)=(g(i)*(worksheets("feuil2")Cells(x1(8)+11,7)+ 12*(j-1))+(30-g(i))*(worksheets("feuil2")cells(x2(8)+11,7)+12*(j-1))/30
enfin je veux faire la somme ci-dessous SUPPOSONS par exemlpe qu'on a 3 ans en N8 donc:
K8=M8*(1/(1+T(1))^P(1)+1/(1+T(2))^P(2)+1/(1+T(3))^P(3))+100/1/(1+T(3))^P(3)
puis appliquer ce procedé en K9,k10,,,jusqua la derniere cellule K87 EN fait la derniere cellule n'est pas fixe elle est variable elle depend de la derniercellule non vide de la colonne H par exemple ,
DESOLE d'etre si long
merci de votre aide.
Option Base 1
Sub prixspot()
Dim x() As Double, T() As Double, p() As Double, g() As Double
Dim i As Integer, j As Integer, x1() As Integer, x2() As Integer, v() As Integer
Dim somme() As Single
ReDim x(1000, 1), T(1000, 1), p(1000, 1), g(1000, 1), v(1000, 1), x1(1000, 1), x2(1000, 1), somme(1000, 1)
For i = 6 To Cells(Rows.Count, 1).End(xlUp).Row
somme(i) = 0
' NombreDeJour(i) = Cells(i, 12).Value - Cells(2, 1).Value 'definir le nombre de jours entre aujourd'hui et la date de fin
'NbreAnnées(i) = (Cells(i, 8).Value - Cells(2, 1).Value) / 360
x(i) = Cells(i, 15).Value / 30 'conversion du nombre de jours en mois a la ligne i
x1(i) = Int(x(i)) 'partie entiere de x(i)
x2(i) = x1(i) + 1
v(i) = Cells(i, 14).Value ' nombre d'année de la ligne i
g(i) = (x(i) - x1(i)) * 30
While v(i) > 0
For j = 1 To v(i)
p(j) = x(i) / 12 + (j - 1)
T(j) = (g(i) * Worksheets("Forwards").Cells(x2(i) + 11, 7).Value + 12 * (j - 1) + (30 - g(i)) * (Worksheets("Forwards").Cells(x1(i) + 11, 7).Value + 12 * (j - 1))) / 30
g(i) = (x(i) - x1(i)) * 30
somme(i) = Cells(i, 13).Value / (1 + T(j)) ^ p(j) + 100 / (1 + T(v(i)) ^ p(v(i)))
Next j
Wend
somme(i) = somme(i)
Cells(i, 11).FormulaR1C1 = "=somme(i)"
Next i
End Sub
dans la feuil1 j'ai un tableau de h6 a o11
en colonne H j'ai
h6=Date fin contrat
h7=11/08/2010
h8=11/04/2012
h9=03/10/2011
h10=16/04/2012
h11=22/07/2013
en colonne k j'ai
k6=spot
k7=? k8=? k9=? k10=? k11=? (c'est la colonne pour faire la somme)
en colonne L J'ai
L6=Dte Premier coupon
L7=vide
L8=11/04/2011
L9=03/10/2011
L10=16/04/2011
L11=22/07/2011
en colonne M j'ai
m6=TF-Post
m7=3,13
m8=0,25
m9=0,50
m10=4,50
m11=5,00
en colonne N
n6=Nombre D'années
n7=0
n8=3
n9=2
n10=5
n11=3
en colonne O j'ai
o6=Nbre de jours
o7=vide
o8=40644
o9=40819
o10=40649
o11=40746
dans ma feuille 2 ("forwards) j'ai une colonne de valeur a partir de la ligne 5 en colonne G
je m'explique dans la colonne en jaune je voudrai avoir des resultats de la façon ci-dessous:
1)la cellule L7 etant vide alors on va a la cellule suivante
pour calculer K8 j'ai besoin de:
*du nombre d'anné entre aujourd'hui et H8 =N8 (ce nombre d'année est en N8)
*du nombre de jours entre aujourd'hui et L8
ensuite je converti ce nombre de jours en mois 'dans ma macro c'est mon tableau "x"
x(8)=O8/30
*j'evalue la partie entiere de x(8) dans ma macro j'ai mi
x1(8)=Int(x(8))
*j'ajoute +1 a la partie entiere
x2(8)=x1(8)+1
*ma boucle sur j parcourt le nombre d'année dans ma macro j'ai mi: v(8)=N8
*ma condition while c'est pour dire que je fait la boucle sur j tant que mon nombre d'année est >0
pour K8 j'evalue alors p(j) j=1 jusqu'à v(8) ou v(8) est le nombre d'anné en N8 DONC P(j)=x(8)/12+(j-1) puis j'evalue T(j)=(g(i)*(worksheets("feuil2")Cells(x1(8)+11,7)+ 12*(j-1))+(30-g(i))*(worksheets("feuil2")cells(x2(8)+11,7)+12*(j-1))/30
enfin je veux faire la somme ci-dessous SUPPOSONS par exemlpe qu'on a 3 ans en N8 donc:
K8=M8*(1/(1+T(1))^P(1)+1/(1+T(2))^P(2)+1/(1+T(3))^P(3))+100/1/(1+T(3))^P(3)
puis appliquer ce procedé en K9,k10,,,jusqua la derniere cellule K87 EN fait la derniere cellule n'est pas fixe elle est variable elle depend de la derniercellule non vide de la colonne H par exemple ,
DESOLE d'etre si long
merci de votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjopur,
Tu ne te sert nulle part de ce tableau, je verrais plutôt...
A+
NombreDeJour(i) = Cells(i, 12).Value - Cells(2, 1).Value 'definir le nombre de jours entre aujourd'hui et la date de fin
Tu ne te sert nulle part de ce tableau, je verrais plutôt...
NombreDeJour = (Date - Cells(2, 1)) pour autant que la cellule 2/1 soit définie en date
A+
bonjour tout le monde et merci a MrDupond et a lermite222
pour votre aide mais le code dans lequel j'utilise les resultats que vous m'avez donné est ci-dessous sauf qu'il plante
j'ai une erreur d'incompatibilité de type a cette ligne:
du coup je ne sais pas comment y remedier aussi j'ai des doutes dans ma fonction ReDim
car je veux faire chaque tableau de 6 a la derniere ligne non vide ai-je bien ecrit redim?
merci de votre aide
pour votre aide mais le code dans lequel j'utilise les resultats que vous m'avez donné est ci-dessous sauf qu'il plante
j'ai une erreur d'incompatibilité de type a cette ligne:
T(j + 5) = (g(i) * Worksheets("Forwards").Cells(x2(i) + 11, 7).Value + 12 * (j - 1) + (30 - g(i)) * (Worksheets("Forwards").Cells(x1(i) + 11, 7).Value + 12 * (j - 1))) / 30
du coup je ne sais pas comment y remedier aussi j'ai des doutes dans ma fonction ReDim
car je veux faire chaque tableau de 6 a la derniere ligne non vide ai-je bien ecrit redim?
Sub Prixspot()
Stop
Dim k As Long
Dim x() As Double, T() As Double, p() As Double, g() As Double
Dim i As Integer, j As Integer, x1() As Integer, x2() As Integer, v() As Integer
Dim somme() As Single
ReDim x(6 To Cells(Rows.Count, 1).End(xlUp).Row), T(6 To Cells(Rows.Count, 1).End(xlUp).Row), p(6 To Cells(Rows.Count, 1).End(xlUp).Row), g(6 To Cells(Rows.Count, 1).End(xlUp).Row), v(6 To Cells(Rows.Count, 1).End(xlUp).Row), x1(6 To Cells(Rows.Count, 1).End(xlUp).Row), x2(6 To Cells(Rows.Count, 1).End(xlUp).Row), somme(6 To Cells(Rows.Count, 1).End(xlUp).Row)
k = Cells(Rows.Count, 1).End(xlUp).Row
For i = 6 To k
somme(i) = 0
' NombreDeJour(i) = Cells(i, 12).Value - Cells(2, 1).Value 'definir le nombre de jours entre aujourd'hui et la date de fin
'NbreAnnées(i) = (Cells(i, 8).Value - Cells(2, 1).Value) / 360
x(i) = Cells(i, 15).Value / 30 'conversion du nombre de jours en mois a la ligne i
x1(i) = Int(x(i)) 'partie entiere de x(i)
x2(i) = x1(i) + 1
v(i) = Cells(i, 14).Value ' nombre d'année de la ligne i
g(i) = (x(i) - x1(i)) * 30
While v(i) > 0
For j = 1 To v(i)
p(j + 5) = x(i) / 12 + (j - 1)
T(j + 5) = (g(i) * Worksheets("Forwards").Cells(x2(i) + 11, 7).Value + 12 * (j - 1) + (30 - g(i)) * (Worksheets("Forwards").Cells(x1(i) + 11, 7).Value + 12 * (j - 1))) / 30
somme(i) = Cells(i, 13).Value / (1 + T(j + 5)) ^ p(j + 5) + 100 / (1 + T(v(i)) ^ p(v(i)))
Next j
Wend
somme(i) = somme(i)
Cells(i, 11).Value = somme(i)
Next i
End Sub
merci de votre aide
Sans connaître les nombres qui sont dans tes cellules ni leurs "type" c'est pas possible de décrypter.
Pourais-tu mettre un exemple de ton classeur sur Cjoint et mettre le lien dans un poste suivant.
Pourais-tu mettre un exemple de ton classeur sur Cjoint et mettre le lien dans un poste suivant.
bonjour voici mon code j'ai pu resoudre le probleme precedent sur dim ,redim et l'incompatibilité de type que j'avais
ici:
je recupere dans ma feuille forward des nombres decimaux!!
j'ai executé le code il toune mais la somme calculé n'est pas juste
dans ma boucje ci-dessous :
je veux faire une somme de 1 à v(i) (les v(i) sont des nombres entiers compris entre 0 et 10) pour chaque valeur de i puis retourner la somme dans
ici:
forwards_x2_11x7 = Worksheets("Forwards").Cells(x2(i) + 11, 7).Value
forwards_x1_11x7 = Worksheets("Forwards").Cells(x1(i) + 11, 7).Value
je recupere dans ma feuille forward des nombres decimaux!!
j'ai executé le code il toune mais la somme calculé n'est pas juste
dans ma boucje ci-dessous :
For j = 1 To v(i)
p(j + 5) = x(i) / 12 + (j - 1)
T(j + 5) = (g(i) * (forwards_x2_11x7 + 12 * (j - 1)) + (30 - g(i)) * (forwards_x1_11x7 + 12 * (j - 1))) / 30
somme(i) = Cells(i, 13).Value / (1 + T(j + 5)) ^ p(j + 5) + 100 / (1 + T(v(i) + 5) ^ p(v(i) + 5))
Next j
je veux faire une somme de 1 à v(i) (les v(i) sont des nombres entiers compris entre 0 et 10) pour chaque valeur de i puis retourner la somme dans
Cells(i, 11).Valuea chaque fois
Sub Prixspot()
Dim k As Long
Dim x() As Double
Dim T() As Double
Dim p() As Double, g() As Double
Dim i As Integer, j As Integer
Dim x1() As Integer, x2() As Integer
Dim v() As Integer
Dim somme() As Single
Dim forwards_x2_11x7 As Double
Dim forwards_x1_11x7 As Double
k = Cells(Rows.Count, 1).End(xlUp).Row
ReDim x(6 To k), T(6 To k)
ReDim p(6 To k), g(6 To k)
ReDim v(6 To k)
ReDim x1(6 To k), x2(6 To k)
ReDim somme(6 To k)
For i = 6 To k
If Cells(i, 15).Value <> "" Then
somme(i) = 0
x(i) = Cells(i, 15).Value 'conversion du nombre de jours en mois a la ligne i
x1(i) = Int(x(i)) 'partie entiere de x(i)
x2(i) = x1(i) + 1
v(i) = Cells(i, 14).Value ' nombre d'année de la ligne i
g(i) = (x(i) - x1(i)) * 30
forwards_x2_11x7 = Worksheets("Forwards").Cells(x2(i) + 11, 7).Value
forwards_x1_11x7 = Worksheets("Forwards").Cells(x1(i) + 11, 7).Value
If v(i) > 0 Then
For j = 1 To v(i)
p(j + 5) = x(i) / 12 + (j - 1)
T(j + 5) = (g(i) * (forwards_x2_11x7 + 12 * (j - 1)) + (30 - g(i)) * (forwards_x1_11x7 + 12 * (j - 1))) / 30
somme(i) = Cells(i, 13).Value / (1 + T(j + 5)) ^ p(j + 5) + 100 / (1 + T(v(i) + 5) ^ p(v(i) + 5))
Next j
End If
somme(i) = somme(i)
Cells(i, 11).Value = somme(i)
End If
Next i
End Sub
comment mettre :
Cjoint et mettre le lien dans un poste suivant.
???
merci bien
Cjoint et mettre le lien dans un poste suivant.
???
merci bien
cette requete n'est pas autorisée la ou je me trouve
voila je vais expliquer ici le resultat attendu
j'ai des colonne dans ma feuille excel
colonne N a partir de la ligne 6 jusqu'a la ligne 195 :
en colonne O de la ligne 6 a la ligne 195
mon objectif c'est de remplir le tableau
pour ce faire j'ai creer d'autres tableaux qui me sont utiles :
pour faire ma somme je dois parcourir chaque element du tableau d'ou ma boucle i ,une fois i est fixé je fais
for j=1 à v(i) prenons un exemple:
fixons i=6 j'aurai :
ouf enfin je fais ma somme(6)
ensuite je calcule somme(i) pour i=7 jusqu'a 195 selon le meme schema
voila j'espere avoir mieux eclairci le probleme
dont voici le code:
le code tourne deja mais ma somme est fausse selon ce que j'ai ecrit dans ma boucle
si quelqu'un veut bien m'aider
merci d'avance
voila je vais expliquer ici le resultat attendu
j'ai des colonne dans ma feuille excel
colonne N a partir de la ligne 6 jusqu'a la ligne 195 :
v()=[5,1,6,4,....,3] donc v(6)=5,v(7)=1,.....,v(195)=3raison pour laquelle j'ai defini le tableau v()
en colonne O de la ligne 6 a la ligne 195
x()=[10.33,11.55,8,...,12.33,12] x(6)=10.33,x(7)=11.55 ,..,x(195)=12raison pour laquelle j'ai defini le tableau x()
mon objectif c'est de remplir le tableau
somme()=[................]qui est ma colonne K toujours de la ligne 6 a la ligne 195
pour ce faire j'ai creer d'autres tableaux qui me sont utiles :
x1()=Int(x)=[10,11,8,...,12,12] (int=partie entiere de x) donc x1(6)=10,x1(7)=11...
x2()=x1()+1=[11,12,9,...,13,13] x2(6)=11,.../codeg()=(x()-Int(x()))*30=[0.33*30,0.55*30,0,...,0.33*30,0] donc g(6)=0.33*30,...
pour faire ma somme je dois parcourir chaque element du tableau d'ou ma boucle i ,une fois i est fixé je fais
for j=1 à v(i) prenons un exemple:
fixons i=6 j'aurai :
x(6)=10.33;x1(6)=10;x2(6)=11;v(6)=5;g(6)=0.33*30donc je calcule selon boucle ci dessous:
For j = 1 To v(i)
p(j + 5) = x(i) / 12 + (j - 1)
T(j + 5) = (g(i) * (forwards_x2_11x7 + 12 * (j - 1)) + (30 - g(i)) * (forwards_x1_11x7 + 12 * (j - 1))) / 30
somme(i) = Cells(i, 13).Value / (1 + T(j + 5)) ^ p(j + 5) + 100 / (1 + T(v(i) + 5) ^ p(v(i) + 5))
Next j
p(6)=x(6)/12;p(7)=x(6)/12+1;p(8)=x(6)/12+2;p(9)=x(6)/12+3;p(10)=x(6)/12+4 puis je calcule T(6)=(g(6) * (forwards_x2_11x7 ) + (30 - g(6)) * (forwards_x1_11x7 )) / 30 T(7)=(g(6) * (forwards_x2_11x7 + 12 ) + (30 - g(6)) * (forwards_x1_11x7 + 12 )) / 30 T(8)=(g(6) * (forwards_x2_11x7 + 12 * 2) + (30 - g(6)) * (forwards_x1_11x7 + 12 * 2)) / 30 T(9)=(g(6) * (forwards_x2_11x7 + 12 * 3) + (30 - g(6)) * (forwards_x1_11x7 + 12 * 3)) / 30 T(10)=(g(6) * (forwards_x2_11x7 + 12 * 4) + (30 - g(6)) * (forwards_x1_11x7 + 12 * 4)) / 30
ouf enfin je fais ma somme(6)
somme(6)=cells(6,13).value*(1/(1+T(6))^p(6)+1/(1+T(7))^p(7)+1/(1+T(8))^p(8)+1/(1+T(9))^p(9)+1/(1+T(10))^p(10))+100/(1+T(10))^p(10)puis je met
somme(6) dans cells(6,11)
ensuite je calcule somme(i) pour i=7 jusqu'a 195 selon le meme schema
voila j'espere avoir mieux eclairci le probleme
dont voici le code:
Sub Prixspot()
Dim k As Long
Dim x() As Double
Dim T() As Double
Dim p() As Double, g() As Double
Dim i As Integer, j As Integer
Dim x1() As Integer, x2() As Integer
Dim v() As Integer
Dim somme() As Single
Dim forwards_x2_11x7 As Double
Dim forwards_x1_11x7 As Double
k = Cells(Rows.Count, 1).End(xlUp).Row
ReDim x(6 To k), T(6 To k)
ReDim p(6 To k), g(6 To k)
ReDim v(6 To k)
ReDim x1(6 To k), x2(6 To k)
ReDim somme(6 To k)
For i = 6 To k
If Cells(i, 15).Value <> "" Then
somme(i) = 0
x(i) = Cells(i, 15).Value 'conversion du nombre de jours en mois a la ligne i
x1(i) = Int(x(i)) 'partie entiere de x(i)
x2(i) = x1(i) + 1
v(i) = Cells(i, 14).Value ' nombre d'année de la ligne i
g(i) = (x(i) - x1(i)) * 30
forwards_x2_11x7 = Worksheets("Forwards").Cells(x2(i) + 11, 7).Value
forwards_x1_11x7 = Worksheets("Forwards").Cells(x1(i) + 11, 7).Value
If v(i) > 0 Then
For j = 1 To v(i)
p(j + 5) = x(i) / 12 + (j - 1)
T(j + 5) = (g(i) * (forwards_x2_11x7 + 12 * (j - 1)) + (30 - g(i)) * (forwards_x1_11x7 + 12 * (j - 1))) / 30
somme(i) = Cells(i, 13).Value / (1 + T(j + 5)) ^ p(j + 5) + 100 / (1 + T(v(i) + 5) ^ p(v(i) + 5))
Next j
End If
somme(i) = somme(i)
Cells(i, 11).Value = somme(i)
End If
Next i
end sub
le code tourne deja mais ma somme est fausse selon ce que j'ai ecrit dans ma boucle
si quelqu'un veut bien m'aider
merci d'avance