[Excel] Problème de formule "somme.series"

Problème de formule "somme.series" [Excel] - Logiciels - Windows & Software

Marsh Posté le 30-08-2009 à 20:38:01    

Bonjour à tous !  :D
Alors voilà, j'expose mon problème :

 

J'essaie de m'entrainer à dompter excel, il m'est venu donc l'idée de faire mon propre simulateur de ressource pour ogame. Le but est simple : rentrer le niveau actuel et voulu d'un bâtiment (ou plusieurs) afin d'avoir les ressources nécessaires à sa construction et le temps qu'il me faut pour les avoir (encore en fonction des ressources déjà disponible qu'on rentre auparavant).
Seulement voilà, les formules du coût des bâtiments n'est pas très simple.
Je prend un seul exemple (les autres bâtiments étant sensiblement similaire) :

 

Le coût pour passer au niveau n (si donc nous sommes au niveau n-1) est le suivant : 60*1.5^(n-1)
Donc si mon bâtiment est niveau 4 et que je veux le passer au niveau 5, il me coûtera 60*1.5^4 = 303 (en utilisant la fonction "tronque" parce que oui je dois l'utiliser ^^)

 

Mais voilà que mon problème arrive... Si je décide de calculer le coût pour passer du niveau 4 à 6, histoire de voir si cela est cher et profitable ou non, la formule pour le coût rajoute un nouveau terme, on a donc : 60*1.5^4 + 60*1.5^5...
J'ai donc utilisé la formule somme.series :
x=1.5
n=9
m=1
coef=60
Dans ce cas, c'est pour passer du niveau 9 à 10. Bien entendu, dans ma formule j'ai mis à la place de 9, B13 qui correspond au niveau actuel du bâtiment que la personne devra entrer.
Mais seulement voilà, si je veux calculer le coup pour passer du niveau 9 à 11, il faut que moi j'entre manuellement les nouveaux coefficient : {60;60} ou alors créer une plage de 2 cellules contenant 60 (mais très peu pratique).

 

Donc je voulais savoir si on peut traduire les coefficients autrement, ou si il y aurait possibilité d'inclure une variable en rapport avec la différence de niveau entre celui actuel et celui voulu afin que le nombre de coef change.

 

Si j'ai oublié des éléments pour que vous compreniez mieux mon problème z'avez qu'à demander ^^

 

Merci d'avance  :jap:


Message édité par orbital99 le 30-08-2009 à 20:40:34
Reply

Marsh Posté le 30-08-2009 à 20:38:01   

Reply

Marsh Posté le 02-09-2009 à 11:26:31    

Bonjour
 
Des fois il vaut mieux se créér sa propre fonction, ca evite de perdre du temps...
 
En voila une qui resoud ton souci :

Code :
  1. Function orbital99(coef, x, n, p)
  2. 'p c'est ton ton saut de niveau, 1 pour passer au suivant, _
  3. 2 pour aller au 2eme apres etc.
  4.     For i = 1 To p
  5.         orbital99 = Val(orbital99 + (coef * x ^ n))
  6.         n = n + 1
  7.     Next i
  8. End Function


 
Ensuite, si je pars du principe :
A1 : 60
A2 : 1.5
A3 : 9
A4 : 2 (ici c'est ton pas, mettre 1 pour passer du niveau 9 à 10)
A5 : =orbital99(A1;A2;A3;A4)
 
On a donc 5765 en A5


Message édité par SuppotDeSaTante le 02-09-2009 à 11:30:12

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 03-09-2009 à 18:24:50    

Merci beaucoup mais (oui je sais c'est crétin de dire merci mais d'ajouter un mais), comment on crée sa propre formule ?
Dans l'onglet formule il n'y a rien pour entrer des lignes comme ça...même rien qui ressemble à l'interface d'une calculatrice de lycée x) (ou alors j'ai très mal cherché).
Donc si ça se fait par excel je vois pas du tout où °.°

Reply

Marsh Posté le 04-09-2009 à 14:52:19    

C'est du Visual Basic pour Application.
 
Pour le saisir, tu vas dans, outils, macro, visual basic editor. Dans la nouvelle fenetre, affichage, Explorateur de Projet.
Tu selectionnes, a gauche, ton fichier.
Tu vas dans Insertion, Module
Tu colles la macro que je t'ai mise précédement, et ca devrait rouler.
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 04-09-2009 à 15:34:00    

=p
Merci beaucoup ^^ ça va énormément m'aider =D
 
Merci (bah oui un p'tit dernier pour la route ^^)

Reply

Marsh Posté le 04-09-2009 à 19:22:48    

Reply

Sujets relatifs:

Leave a Replay

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