Programmation tant que

Bonjour,

Je dois faire un programme mais cela ce revele compliqué étant donné que je débute en VBA..

Je dois réaliser un programme car les calculs que j’ai a faire consitutent un processus itératif.

Je dois calculer 2 grandeurs A et B qui sont fonctions d’un même paramètre appelé x. L’objectif du programme est d’obtenir la valeur de x tel que A et B soient égaux. Je dois alors effectuer le calcul par tâtonnement. Je connais les valeurs maxi (12) et mini (0) de x.

For x =0 to 12

A=c+d*x (c et d étant connus)

B=a(x)+b(x)+f(x) les parametres a b et f dépendant de x…

a=…*x

b=…*x

f=…*x

Cependant je ne sais pas ou intégrer le fait que le calcul ne doit pas s’arrêter tant que A<>B...

bonsoir,

cela devrait ressembler à ceci.

Sub test()

c = …
d = …
For x = 0 To 12
a = … * x
b = … * x
f = … * x
gA = c + d * x '(c et d étant connus)
gB = a + b + f 'les parametres a b et f dépendant de x…
If gA = gB Then MsgBox "solution pour x = " & x: Exit Sub
Next x
End Sub

Merci beaucoup pour cette réponse rapide...cependant vous passez par un sub alors que je passe par un Function (je ne l'ai pas précisé désolée)

le calcul de B est compliqué...il faut calculer plusieurs paramètres qui dépendent de x avant d'en obtenir la valeur. je dois stocker ces valeurs dans un tableau..jai donc décider d'utiliser un Redimmtx

Bonsoir,

et que retourne la fonction ? la valeur de x qui vérifier A=B ?

alors cela devrait ressembler à ceci.

function test() as variant

c = …
d = …
For x = 0 To 12
a = … * x
b = … * x
f = … * x
gA = c + d * x '(c et d étant connus)
gB = a + b + f 'les parametres a b et f dépendant de x…
If gA = gB Then test=x:exit function
Next x
test="pas de valeur de x trouvée qui vérifie A=B"
End function

Oui,

en fait je pensais regrouper les résultats dans une matrice. ces résultats devront contenir les valeurs A et B (seulement si A=B), la courbure correspondantes et les différents coefficients qui dépendant de x et qui permettent de calculer B. Pensez vous que ce choix soit judicieux?

et j'ai également une autre question. En ce qui concerne le coefficient f, celui ci dépend de x mais d'une autre valeur que j'appelle H. cette valeur H je l'ai calculée en faisant appel à une fonction (au final mes résultats sur Excel apparaissent sous forme d'une matrice..). Ma question est comment récupérer la valeur H? autrement dit comment appeler une fonction à l'intérieur d'une nouvelle fonction en VBA?


pourquoi ajoutez vous le "as variant" ?

rebonsoir

appel de fonction par une fonction

function valeur_de_x_pour_A_egale_B() as variant

c = …
d = …
For x = 0 To 12
gA = c + d * x '(c et d étant connus)
gB = a(x) + b(x) + f(x) 'les parametres a b et f dépendant de x…
If gA = gB Then test=x:exit function
Next x
test="pas de valeur de x trouvée qui vérifie A=B"
End function

function a(x)
a = … * x
end function

function b(x)
b = … * x
end function

function f(x)
f = … H … * x
end function

function H()
H= …
end function

Bonjour et merci

Mais je ne souhaite pas recopier le code de la fonction H qui est assez long.. n'y a t-il pas un autre moyen?

eliamat a écrit :

Bonjour et merci

Mais je ne souhaite pas recopier le code de la fonction H qui est assez long.. n'y a t-il pas un autre moyen?

faire un copier/coller du code.

Rechercher des sujets similaires à "programmation tant que"