Faire une somme mathématique sigma avec variable en vba.

Faire une somme mathématique sigma avec variable en vba. - VB/VBA/VBS - Programmation

Marsh Posté le 22-04-2013 à 05:12:47    

Bonjour,
 
j'aimerais juste réaliser la somme pour i = 0 à 360  
somme= 100000 / 30 / 12) / (1.01)^i
 
 
function var1(i as integer) = (100000 / 30 / 12) / (1.01)^i as double  
end

 
j'ai posé cette fonction pour la somme
 
Mais après je ne sais pas quoi mettre à partir de sub()
J'avais pensé à un truc qui pourrait ressembler à :
 
Sub()
For i=0 to 360  
var1=var1+var(i+1)
 
Mais je suis pas sûre du tout et ça ne marche pas.
 
Je sais que c'est une question niveau débutant mais je n'ai pas trouvé sur internet de réponse à mon probleme.
 
Merci


Message édité par uskiparis le 22-04-2013 à 05:21:08
Reply

Marsh Posté le 22-04-2013 à 05:12:47   

Reply

Marsh Posté le 22-04-2013 à 07:57:52    

Salut,

 

vite fait sur le gaz :


Function var1() As Double
Dim i As Integer
Dim somme As Double
    For i = 0 To 360
        somme = somme + (100000 / 30 / 12) / (1.01) ^ i
    Next
    var1 = somme
End Function

 

Soit :

print var1()
 27282,8697441845

 

Si tu veux faire varier le nombre de boucles (ici ça calcule 361 boucles -avec le 0-) tu peux modifier la fonction comme ça :


Function var1(NbBoucles as Integer) As Double
Dim i As Integer
Dim somme As Double
    For i = 0 To NbBoucles
        somme = somme + (100000 / 30 / 12) / (1.01) ^ i
    Next
    var1 = somme
End Function


Dans ce cas, ça fait :

print var1(500)
 27863,6839949641


pour 501 boucles...


Message édité par otobox le 22-04-2013 à 07:59:25

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 22-04-2013 à 14:39:46    

merci

Reply

Marsh Posté le 22-04-2013 à 21:36:06    

J'ai cette erreur maintenant : Incompatibilité de type.
Je ne comprends pas pouvez-vous m'aider svp
 
 
voici mon code
 
Function var1() As Double    <= zone surligné par excel
 
 
Dim i As Integer
 
Dim somme() As Double
 
 
 
For i = 0 To 360
somme = somme + (100000 / 30 / 12) / (1.01) ^ i
Next
cell(A1, 1) = somme
 
 
 
End Function

Reply

Marsh Posté le 23-04-2013 à 07:59:49    

uskiparis a écrit :

J'ai cette erreur maintenant : Incompatibilité de type.
Je ne comprends pas pouvez-vous m'aider svp
 
 
voici mon code
 
Function var1() As Double    <= zone surligné par excel
 
 
Dim i As Integer
 
Dim somme() As Double
 
 
 
For i = 0 To 360
somme = somme + (100000 / 30 / 12) / (1.01) ^ i
Next
cell(A1, 1) = somme
 
 
 
End Function



Tu déclares une variable somme() comme étant un tableau de type double...
Supprime les parenthèses...

Dim somme As Double


 
PS : quand tu mets du code, c'est plus facile à lire quand il est entre la balises Fixe http://forum-images.hardware.fr/icones/message/fixe.gif  ou C/c++ http://forum-images.hardware.fr/icones/message/c.gif que lorsqu'il est entre des balises italique http://forum-images.hardware.fr/icones/message/italic.gif


---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Marsh Posté le 23-04-2013 à 08:03:43    

Et puis, si tu ne récupères pas la valeur de var1 pour un autre calcul, mais si c'est simplement pour écrire une valeur dans une cellule, autant utiliser une procédure normale plutôt qu'une fonction :

Sub var1()
Dim i As Integer
Dim somme As Double
    For i = 0 To 360
        somme = somme + (100000 / 30 / 12) / (1.01) ^ i
    Next
   Cells(1, 1) = somme
End Sub

 

et n'oublies pas de mettre un S à Cells et supprimer le "A" dans l'adresse de la cellule ;)

 

cell(A1, 1) = somme
Cells(1, 1) = somme


Message édité par otobox le 23-04-2013 à 08:06:30

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed