Microsoft 365 Besoin d'aide VBA appeler cellule

Nicolas17

XLDnaute Nouveau
Bonjour,

J'essaie de faire fonctionner mon programme mais il n'arrive pas à appeler les cellules correspondantes. Je suis néophyte avec VBA. J'aurai besoin d'aide c'est très important.

Sub Fltest()
Dim Am As Double
Dim Ac As Double

Am = Range("B25").Value 'InputBox("Indiquez la section transversale immergé en m")

Ac = Range("B22").Value 'InputBox("Indiquez le débit en m3/s")

resultat = Fl(Am, Ac) 'pour afficher la valeur de Fl

End Sub

Function equation(Ac As Double, Am As Double, F As Double)


equation = ((2 / 3) * (1 - (Am / Ac) + 0.5 * (F ^ 2))) ^ (3 / 2)

End Function

Function Fl(Ac As Double, Am As Double)

Dim X As Double

X = 1
While Abs(X - equation(Ac, Am, X)) > 0.001
X = equation(Ac, Am, X)
Wend
Fl = X

End Function




Merci à vous

Cordialement
 

Nicolas17

XLDnaute Nouveau
Oui Am (environ 200) est supérieur à Ac (environ 30).

J'ai besoin de faire de boucles. C'est pour cela que j'utilise VBA. L'équation que je souhaite résoudre est la suivante (ci-joint)
Capture.PNG
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Si Am=200 et Ac=30 alors Am/Ac=200/30=6.666666
Donc 1-Am/Ac=-5.66666
Donc ou votre formule est fausse, soit les données sont fausses car cela conduit à une "racine négative"
Et par XL vous aurez la même chose.

Par contre si Am=30 et Ac=200 alors on obtient : 0,542515163850113


Sous XL vous pourriez le faire par calcul itératif en spécifiant un écart maximal dans les options.
Mais franchement à mes yeux il vaut mieux trois lignes de VBA.
 
Dernière édition:

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 203
Membres
103 157
dernier inscrit
youma