Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1191 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2186862
uskiparis
Posté le 22-04-2013 à 05:12:47  profilanswer
 

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
mood
Publicité
Posté le 22-04-2013 à 05:12:47  profilanswer
 

n°2186864
otobox
Maison fondée en 2005
Posté le 22-04-2013 à 07:57:52  profilanswer
 

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
n°2186968
uskiparis
Posté le 22-04-2013 à 14:39:46  profilanswer
 

merci

n°2187081
uskiparis
Posté le 22-04-2013 à 21:36:06  profilanswer
 

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

n°2187105
otobox
Maison fondée en 2005
Posté le 23-04-2013 à 07:59:49  profilanswer
 

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
n°2187106
otobox
Maison fondée en 2005
Posté le 23-04-2013 à 08:03:43  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
Aide VBA, Somme de chaque ligne d'un tableaufaire une somme par heure,jour,mois...
somme des éléments d'un tableausomme entiers premiers
somme d'heures en PHPprobleme excel vba somme
Effectuer une somme avec condition sous excelCalculer somme des champs d'un formulaire
[resolu] faire un max d'une somme : j'y arrive pas !somme datetime
Plus de sujets relatifs à : Faire une somme mathématique sigma avec variable en vba.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR