J'ai r=E9dig=E9 la macro suivante, elle est longue mais=20
compr=E9hensible, lors de l'=E9x=E9cution de la macro je=20
re=E7ois une erreur (13), incompatibilit=E9 de type, en=20
passant au debug, je constate que le probl=E8me se situe au=20
niveau du calcule de la premi=E8re =E9ch=E9ance moyenne, plus=20
pr=E9cis=E9ment au niveau de la ligne Worksheets
("feuil1").Cells(9 + k, 3).Formula =3D "=3D 1 / Ln(Cells(9 +=20
k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k, 10))"
L'erreur se situe sur ln (cells(9+k,1))... cells(9+k,1)=20
n'est pas bon. Comment puis je r=E9soudre le probl=E8me ?
Merci de l'aide que vous pouvez me donner. (la macros se=20
trouve apr=E8s)
Sub rendement()
Dim ctot As Integer
Dim dtot As Integer
Dim k As Single
'
'Calcul des capitaux in et out
'
Worksheets("feuil1").Cells(8, 2).Formula =3D "=3Dsum(b2:b3)"
Worksheets("feuil1").Cells(8, 4).Formula =3D "=3Dsum(d2:d6)"
'
'Calcul des =E9ch=E9ances moyennes si l'int=E9r=EAt initial est=20
suppos=E9 nul
'
Worksheets("feuil1").Cells(9, 3).Value=20
=3D "=3D1/ctot*sumproduct(b2:b3,c2:c3)"
Worksheets("feuil1").Cells(9, 5).Value=20
=3D "=3D1/dtot*sumproduct(d2:d6,e2:e6)"
'
'calcul de la suite des taux ainsi que des =E9ch=E9ances=20
moyennes correspondantes
'
For k =3D 1 To 50
Worksheets("feuil1").Cells(9 + k, 2).Value =3D (Cells
(8, 2) / Cells(8, 4)) ^ (1 / (Cells(8 + k, 3) - Cells(8 +=20
k, 5))) - 1
Worksheets("feuil1").Cells(9 + k, 1).Value =3D (1 +=20
Cells(9 + k, 2)) ^ (-1)
'calcul de la premi=E8re =E9ch=E9ance moyenne
l =3D 0
For m =3D 2 To 3
Worksheets("feuil1").Cells(9 + k, 10).Value =3D l +=20
Cells(m, 2) * (Cells(9 + k, 1) ^ (Cells(m, 3)))
l =3D Cells(9 + k, 10)
Next m
Worksheets("feuil1").Cells(9 + k, 3).Formula =3D "=3D 1 /=20
Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k,=20
10))"
'calcul de la seconde =E9ch=E9ance moyenne
n =3D 0
For p =3D 2 To 6
Worksheets("feuil1").Cells(9 + k, 11).Value =3D n +=20
Cells(p, 4) * (Cells(9 + k, 1) ^ (Cells(p, 5)))
n =3D Cells(9 + k, 11)
Next p
Worksheets("feuil1").Cells(9 + k, 5).Formula =3D "=3D 1 /=20
Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 4) * Cells(9 + k,=20
11))"
Next k
End Sub
devrait faire l'affaire :) -- ---------------------------------------------------------------------------- - Maxence HUBICHE Formateur et développeur indépendant Modérateur/rédacteur sur http://www.developpez.com
"Pignouf" a écrit dans le message de news: 036201c3cf1d$419b16b0$ Bonjour à tous,
J'ai rédigé la macro suivante, elle est longue mais compréhensible, lors de l'éxécution de la macro je reçois une erreur (13), incompatibilité de type, en passant au debug, je constate que le problème se situe au niveau du calcule de la première échéance moyenne, plus précisément au niveau de la ligne Worksheets ("feuil1").Cells(9 + k, 3).Formula = "= 1 / Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k, 10))" L'erreur se situe sur ln (cells(9+k,1))... cells(9+k,1) n'est pas bon. Comment puis je résoudre le problème ?
Merci de l'aide que vous pouvez me donner. (la macros se trouve après)
Sub rendement() Dim ctot As Integer Dim dtot As Integer Dim k As Single ' 'Calcul des capitaux in et out ' Worksheets("feuil1").Cells(8, 2).Formula = "=sum(b2:b3)" Worksheets("feuil1").Cells(8, 4).Formula = "=sum(d2:d6)" ' 'Calcul des échéances moyennes si l'intérêt initial est supposé nul ' Worksheets("feuil1").Cells(9, 3).Value = "=1/ctot*sumproduct(b2:b3,c2:c3)" Worksheets("feuil1").Cells(9, 5).Value = "=1/dtot*sumproduct(d2:d6,e2:e6)" ' 'calcul de la suite des taux ainsi que des échéances moyennes correspondantes ' For k = 1 To 50 Worksheets("feuil1").Cells(9 + k, 2).Value = (Cells (8, 2) / Cells(8, 4)) ^ (1 / (Cells(8 + k, 3) - Cells(8 + k, 5))) - 1 Worksheets("feuil1").Cells(9 + k, 1).Value = (1 + Cells(9 + k, 2)) ^ (-1) 'calcul de la première échéance moyenne l = 0 For m = 2 To 3 Worksheets("feuil1").Cells(9 + k, 10).Value = l + Cells(m, 2) * (Cells(9 + k, 1) ^ (Cells(m, 3))) l = Cells(9 + k, 10) Next m Worksheets("feuil1").Cells(9 + k, 3).Formula = "= 1 / Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k, 10))" 'calcul de la seconde échéance moyenne n = 0 For p = 2 To 6 Worksheets("feuil1").Cells(9 + k, 11).Value = n + Cells(p, 4) * (Cells(9 + k, 1) ^ (Cells(p, 5))) n = Cells(9 + k, 11) Next p Worksheets("feuil1").Cells(9 + k, 5).Formula = "= 1 / Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 4) * Cells(9 + k, 11))" Next k End Sub
devrait faire l'affaire :)
--
----------------------------------------------------------------------------
-
Maxence HUBICHE
Formateur et développeur indépendant
Modérateur/rédacteur sur http://www.developpez.com
"Pignouf" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 036201c3cf1d$419b16b0$a301280a@phx.gbl...
Bonjour à tous,
J'ai rédigé la macro suivante, elle est longue mais
compréhensible, lors de l'éxécution de la macro je
reçois une erreur (13), incompatibilité de type, en
passant au debug, je constate que le problème se situe au
niveau du calcule de la première échéance moyenne, plus
précisément au niveau de la ligne Worksheets
("feuil1").Cells(9 + k, 3).Formula = "= 1 / Ln(Cells(9 +
k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k, 10))"
L'erreur se situe sur ln (cells(9+k,1))... cells(9+k,1)
n'est pas bon. Comment puis je résoudre le problème ?
Merci de l'aide que vous pouvez me donner. (la macros se
trouve après)
Sub rendement()
Dim ctot As Integer
Dim dtot As Integer
Dim k As Single
'
'Calcul des capitaux in et out
'
Worksheets("feuil1").Cells(8, 2).Formula = "=sum(b2:b3)"
Worksheets("feuil1").Cells(8, 4).Formula = "=sum(d2:d6)"
'
'Calcul des échéances moyennes si l'intérêt initial est
supposé nul
'
Worksheets("feuil1").Cells(9, 3).Value
= "=1/ctot*sumproduct(b2:b3,c2:c3)"
Worksheets("feuil1").Cells(9, 5).Value
= "=1/dtot*sumproduct(d2:d6,e2:e6)"
'
'calcul de la suite des taux ainsi que des échéances
moyennes correspondantes
'
For k = 1 To 50
Worksheets("feuil1").Cells(9 + k, 2).Value = (Cells
(8, 2) / Cells(8, 4)) ^ (1 / (Cells(8 + k, 3) - Cells(8 +
k, 5))) - 1
Worksheets("feuil1").Cells(9 + k, 1).Value = (1 +
Cells(9 + k, 2)) ^ (-1)
'calcul de la première échéance moyenne
l = 0
For m = 2 To 3
Worksheets("feuil1").Cells(9 + k, 10).Value = l +
Cells(m, 2) * (Cells(9 + k, 1) ^ (Cells(m, 3)))
l = Cells(9 + k, 10)
Next m
Worksheets("feuil1").Cells(9 + k, 3).Formula = "= 1 /
Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k,
10))"
'calcul de la seconde échéance moyenne
n = 0
For p = 2 To 6
Worksheets("feuil1").Cells(9 + k, 11).Value = n +
Cells(p, 4) * (Cells(9 + k, 1) ^ (Cells(p, 5)))
n = Cells(9 + k, 11)
Next p
Worksheets("feuil1").Cells(9 + k, 5).Formula = "= 1 /
Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 4) * Cells(9 + k,
11))"
Next k
End Sub
devrait faire l'affaire :) -- ---------------------------------------------------------------------------- - Maxence HUBICHE Formateur et développeur indépendant Modérateur/rédacteur sur http://www.developpez.com
"Pignouf" a écrit dans le message de news: 036201c3cf1d$419b16b0$ Bonjour à tous,
J'ai rédigé la macro suivante, elle est longue mais compréhensible, lors de l'éxécution de la macro je reçois une erreur (13), incompatibilité de type, en passant au debug, je constate que le problème se situe au niveau du calcule de la première échéance moyenne, plus précisément au niveau de la ligne Worksheets ("feuil1").Cells(9 + k, 3).Formula = "= 1 / Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k, 10))" L'erreur se situe sur ln (cells(9+k,1))... cells(9+k,1) n'est pas bon. Comment puis je résoudre le problème ?
Merci de l'aide que vous pouvez me donner. (la macros se trouve après)
Sub rendement() Dim ctot As Integer Dim dtot As Integer Dim k As Single ' 'Calcul des capitaux in et out ' Worksheets("feuil1").Cells(8, 2).Formula = "=sum(b2:b3)" Worksheets("feuil1").Cells(8, 4).Formula = "=sum(d2:d6)" ' 'Calcul des échéances moyennes si l'intérêt initial est supposé nul ' Worksheets("feuil1").Cells(9, 3).Value = "=1/ctot*sumproduct(b2:b3,c2:c3)" Worksheets("feuil1").Cells(9, 5).Value = "=1/dtot*sumproduct(d2:d6,e2:e6)" ' 'calcul de la suite des taux ainsi que des échéances moyennes correspondantes ' For k = 1 To 50 Worksheets("feuil1").Cells(9 + k, 2).Value = (Cells (8, 2) / Cells(8, 4)) ^ (1 / (Cells(8 + k, 3) - Cells(8 + k, 5))) - 1 Worksheets("feuil1").Cells(9 + k, 1).Value = (1 + Cells(9 + k, 2)) ^ (-1) 'calcul de la première échéance moyenne l = 0 For m = 2 To 3 Worksheets("feuil1").Cells(9 + k, 10).Value = l + Cells(m, 2) * (Cells(9 + k, 1) ^ (Cells(m, 3))) l = Cells(9 + k, 10) Next m Worksheets("feuil1").Cells(9 + k, 3).Formula = "= 1 / Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 2) * Cells(9 + k, 10))" 'calcul de la seconde échéance moyenne n = 0 For p = 2 To 6 Worksheets("feuil1").Cells(9 + k, 11).Value = n + Cells(p, 4) * (Cells(9 + k, 1) ^ (Cells(p, 5))) n = Cells(9 + k, 11) Next p Worksheets("feuil1").Cells(9 + k, 5).Formula = "= 1 / Ln(Cells(9 + k, 1)) * Ln(1 / Cells(8, 4) * Cells(9 + k, 11))" Next k End Sub
Clément Marcotte
Bonjour,
L'erreur se situe sur ln (cells(9+k,1))... cells(9+k,1) n'est pas bon.
Excel ne connaît que LOG() et LOG10(). Remplace ton ln par LOG
Bonjour,
L'erreur se situe sur ln (cells(9+k,1))... cells(9+k,1)
n'est pas bon.
Excel ne connaît que LOG() et LOG10(). Remplace ton ln par LOG