[VBA-E] Définition et résolution d'équation 3ième degré
Bonjour,
Je débute en VBA.
Je suis en train de programmé une feuille de calcul destinée à résoudre des équations d'hydraulique.
Ces équations sont du type ax^3+bx^2+cx+d =0
Pour les résoudre, je dois effectuer un changement de variable, calculer le discrimant et choisir les solutions réelles. Dans la théorie, y a pas de souci.
Seulement, le nombre d'équations que je veux résoudre est variable, je ne peux donc pas les définir classiquement dans une feuille Excel; il faut que je les définisse dans le programme: et c'est là que le bât blesse.
Comment définir dans une boucle une équation du type:
a(i) * X(i)^3 + b(i)*X(i)^2+c(i)*X(i)+d(i) = 0
Et là je bloque...
eclaircissement de la question
Merci pour l'aide.
En effet je stocke bien les coefficients dont j'ai besoin dans un tableau (dont le nombre d'éléments varie en fonction des hypothèses de calcul) et je souhaite les récupérer pour effectuer mon changement de variables et c'est là que ça plante:
Pas de souci pour effectuer les calculs avec des coef. fixes mais il ne reconnait pas mes coef. variables. Je joins les quelques lignes critiques:
0 (Début de la boucle, pour le changement de variable)
1 For i = 0 To nbre_bass + 1
2
3 (je lui demande d'effectuer un calcul et de stocker les résultats dans des lignées dépendant de i; jusque là tout roule)
4 Range("A" & lig_donnees + 60 + 1 * i).Select
5 Range("A" & lig_donnees + 60 + 1 * i).Formula = "=($O$8)^2 * ($P$8)^6 2 * 2*9.81"
7
8 (je lui demande d'aller chercher un certain nombre que j'ai calculé préalablement et de le stocker sous la variable zeau pour le réutiliser ultérieurement)
9 Range("G" & lig_donnees + 8 + 4 * i).Select
10 zeau = ActiveCell.Value
11
12 Range("H" & lig_donnees + 8 + 4 * i).Select
13 zfond = ActiveCell.Value
14
15 (je lui demande d'effectuer un calcul dépendant de zeau et zfond et de le stocker; et là il ne comprend pas les valeurs zeau et zfond...)
16 Range("B" & lig_donnees + 60 + 1 * i).Select
17 Range("B" & lig_donnees + 60 + 1 * i).Formula = "=($O$8)^2 * ($P$8)^18 2 * 2*9.81*2*(zeau-zfond)+($S$8)^2*($R$8)^2*($Q$8)^2*2*9.81"
19
20 Next i
voici la base de mon problème...