Bonjour,
Je veux faire résoudre des système de trois équations à 3 inconnues dans une macro Excel, et pour ce faire, je procède a l'aide de 2 boucles For qui me déterminent mon X et mon Y. Puis en fonction de ces deux paramètres le Z est calculé à l'aide de l'une des 3 équations de mon système.
ex:
Les fonctions A et B sont les deux premières équations de mon système et C la troisième.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 For X = 0 To 10 Step 0.01 For Y = 0 To 10 Step 0.01 ZPetoile = C(X,Y) If Application.WorksheetFunction.And(limite_precision_neg < A(X,Y,Z) , A(X,Y,Z) < limite_precision_pos , limite_precision_neg < B(X,Y,Z) , B(X,Y,Z) < limite_precision_pos) Then Exit For Next Y Next X Range("F66").Value = X Range("G66").Value = Y Range("H66").Value = Z
Je fais afficher les valeurs qui sont balayées par X, Y et Z et toutes les valeurs sont bien parcourues. Sauf que lorsque les conditions :
* limite_precision_neg < B(X,Y,Z)
* B(X,Y,Z) < limite_precision_pos
sont validées, les valeurs de Y parcourues, évites les valeurs qui font que les conditions :
*limite_precision_neg < A(X,Y,Z)
*A(X,Y,Z) < limite_precision_pos
soient validées
dès que les première conditions (sur B(X,Y,Z)) ne sont pas validées, Y reparcours toutes les valeurs de l'intervalle que je lui ai demandé [0;10]
Le problème c'est que, je sais que ma solution est dans cette zone esquivé par le Y, donc je ne trouve pas de solution...
Je cherche depuis plusieurs jours et je ne sais pas comment résoudre ce problème...
Merci d'avance
Yves
Partager