traduire en VBA la formule

Le
arnaud
Bonjour à tous :
J'ai une formule issu d'un langage de programmation et j'aimerai réutiliser
cette formule sous VBA mais elle ne fonctionne pas :
d = 2*asin( sqrt (pow(sin (($lat1-$lat2)/2),2) + (
cos($lat1)*cos($lat2)*pow( sin(($lon1-$lon2)/2),2) ) ))

VBA n'a pas l'air d'apprecier ma fonction pow !

Merci de votre aide

Arnaud
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Oliv'
Le #2719271
arnaud %
Bonjour à tous :
J'ai une formule issu d'un langage de programmation et j'aimerai
réutiliser cette formule sous VBA mais elle ne fonctionne pas :
d = 2*asin( sqrt (pow(sin (($lat1-$lat2)/2),2) + (
cos($lat1)*cos($lat2)*pow( sin(($lon1-$lon2)/2),2) ) ))

VBA n'a pas l'air d'apprecier ma fonction pow !

Merci de votre aide

Arnaud


Si tu nous indiqués à quoi elle sert cette fonction pow ? et sqrt ?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

AV
Le #2719261
VBA n'a pas l'air d'apprecier ma fonction pow !


Ben c'est quoi la fonction de feuille de calcul "pow" ?
La seule approchante pourrait être "power" ?
Par vba tu veux le rsultat du calcul ou écrire la fonction dans une feuille ?
$lon1, $lon2..... sont des variables ou des noms ?

AV

AV
Le #2719251
Exemples à adapter :

sub zzz()
lat1 = 10: lat2 = 20: long1 = 30: long2 = 40
'renvoyer la valeur
MsgBox Evaluate("2*asin(sqrt(power(sin((" & lat1 & "-" & lat2 & ")/2),2) +
(cos(" & lat1 & ")*cos(" & lat2 & ")*power(sin((" & long1 & "-" & long2 &
")/2),2) ) ))")
'ecrire la formule en A1
[A1] = "=2*asin(sqrt(power(sin((" & lat1 & "-" & lat2 & ")/2),2) + (cos(" & lat1
& ")*cos(" & lat2 & ")*power(sin((" & long1 & "-" & long2 & ")/2),2) ) ))"
end sub

AV
as-kisscooltn
Le #2719241
Salut,

j'imagine que pow est juste l'exposant.
donc dans ce cas pow(x,2) s'ecrit x^2.
pareil pour sqrt, c'est la racine carree mais l'orthographe n'est pas
la meme donc sqrt(x)=sqr(x) ou x^0.5
Par contre je suis pas sur non plus que asin marche en vba. par contre
il exite atn (arc tangente) et donc :
asin(x)=Atn(x/sqr(1-x^2))
si tu utilises souvent cette fonction, il est peut etre plus lisible
pour tes formules de calcul de la creer..

A +
mehdi

Oliv' (supprimerceci) wrote:
arnaud %
Bonjour à tous :
J'ai une formule issu d'un langage de programmation et j'aimerai
réutiliser cette formule sous VBA mais elle ne fonctionne pas :
d = 2*asin( sqrt (pow(sin (($lat1-$lat2)/2),2) + (
cos($lat1)*cos($lat2)*pow( sin(($lon1-$lon2)/2),2) ) ))

VBA n'a pas l'air d'apprecier ma fonction pow !

Merci de votre aide

Arnaud


Si tu nous indiqués à quoi elle sert cette fonction pow ? et sqrt ?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



arnaud
Le #2718851
effectivement, pow, c'est l'exposant et sqrt c'est la racine carree.
Le tout me permet de créer ma function VBA

Function CalculD(lat1, lon1, lat2, lon2)
d = 2 * Asin(sqrt(Exp(Sin((lat1 - lat2) / 2), 2) + (Cos(lat1) * Cos(lat2) *
Exp(Sin((lon1 - lon2) / 2), 2))))
End Function

je vais tester avec vos conseils de remplacement...
Merci ....
Arnaud



Salut,

j'imagine que pow est juste l'exposant.
donc dans ce cas pow(x,2) s'ecrit x^2.
pareil pour sqrt, c'est la racine carree mais l'orthographe n'est pas
la meme donc sqrt(x)=sqr(x) ou x^0.5
Par contre je suis pas sur non plus que asin marche en vba. par contre
il exite atn (arc tangente) et donc :
asin(x)=Atn(x/sqr(1-x^2))
si tu utilises souvent cette fonction, il est peut etre plus lisible
pour tes formules de calcul de la creer..

A +
mehdi

Oliv' (supprimerceci) wrote:
arnaud %
Bonjour à tous :
J'ai une formule issu d'un langage de programmation et j'aimerai
réutiliser cette formule sous VBA mais elle ne fonctionne pas :
d = 2*asin( sqrt (pow(sin (($lat1-$lat2)/2),2) + (
cos($lat1)*cos($lat2)*pow( sin(($lon1-$lon2)/2),2) ) ))

VBA n'a pas l'air d'apprecier ma fonction pow !

Merci de votre aide

Arnaud


Si tu nous indiqués à quoi elle sert cette fonction pow ? et sqrt ?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



Yvan95
Le #2724781
Bonjour tout le monde.

Attention Arnaud! Ne pas confondre la fonction Exp (exponentielle) et la
fonction power (Puissance). D'ailleurs, la fonction Exp n'admet qu'un seul
argument. Dans ton application, c'est la fonction power qu'il faut utiliser,
comme te l'indique AV dans le même fil.

Exp(X) = power(e, x) où e est une constante telle que ln(e)=1
(e=2.718282...)

@+



"arnaud" O%
effectivement, pow, c'est l'exposant et sqrt c'est la racine carree.
Le tout me permet de créer ma function VBA

Function CalculD(lat1, lon1, lat2, lon2)
d = 2 * Asin(sqrt(Exp(Sin((lat1 - lat2) / 2), 2) + (Cos(lat1) * Cos(lat2)
*
Exp(Sin((lon1 - lon2) / 2), 2))))
End Function

je vais tester avec vos conseils de remplacement...
Merci ....
Arnaud



Salut,

j'imagine que pow est juste l'exposant.
donc dans ce cas pow(x,2) s'ecrit x^2.
pareil pour sqrt, c'est la racine carree mais l'orthographe n'est pas
la meme donc sqrt(x)=sqr(x) ou x^0.5
Par contre je suis pas sur non plus que asin marche en vba. par contre
il exite atn (arc tangente) et donc :
asin(x)=Atn(x/sqr(1-x^2))
si tu utilises souvent cette fonction, il est peut etre plus lisible
pour tes formules de calcul de la creer..

A +
mehdi

Oliv' (supprimerceci) wrote:
arnaud %
Bonjour à tous :
J'ai une formule issu d'un langage de programmation et j'aimerai
réutiliser cette formule sous VBA mais elle ne fonctionne pas :
d = 2*asin( sqrt (pow(sin (($lat1-$lat2)/2),2) + (
cos($lat1)*cos($lat2)*pow( sin(($lon1-$lon2)/2),2) ) ))

VBA n'a pas l'air d'apprecier ma fonction pow !

Merci de votre aide

Arnaud


Si tu nous indiqués à quoi elle sert cette fonction pow ? et sqrt ?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~







arnaud
Le #2724621
VBA n'a pas voulu de ma fonction POWER, alors vu qu'il s'agit de la
puissance 2 ; j'ai mis a2*a2 !
Système D !
En tout cas, ça marche impeccable !
Merci à tous !
Arnaud



"Yvan95 @free.fr>" news:
Bonjour tout le monde.

Attention Arnaud! Ne pas confondre la fonction Exp (exponentielle) et la
fonction power (Puissance). D'ailleurs, la fonction Exp n'admet qu'un seul
argument. Dans ton application, c'est la fonction power qu'il faut
utiliser,

comme te l'indique AV dans le même fil.

Exp(X) = power(e, x) où e est une constante telle que ln(e)=1
(e=2.718282...)

@+



"arnaud" O%
effectivement, pow, c'est l'exposant et sqrt c'est la racine carree.
Le tout me permet de créer ma function VBA

Function CalculD(lat1, lon1, lat2, lon2)
d = 2 * Asin(sqrt(Exp(Sin((lat1 - lat2) / 2), 2) + (Cos(lat1) *
Cos(lat2)


*
Exp(Sin((lon1 - lon2) / 2), 2))))
End Function

je vais tester avec vos conseils de remplacement...
Merci ....
Arnaud



Salut,

j'imagine que pow est juste l'exposant.
donc dans ce cas pow(x,2) s'ecrit x^2.
pareil pour sqrt, c'est la racine carree mais l'orthographe n'est pas
la meme donc sqrt(x)=sqr(x) ou x^0.5
Par contre je suis pas sur non plus que asin marche en vba. par contre
il exite atn (arc tangente) et donc :
asin(x)=Atn(x/sqr(1-x^2))
si tu utilises souvent cette fonction, il est peut etre plus lisible
pour tes formules de calcul de la creer..

A +
mehdi

Oliv' (supprimerceci) wrote:
arnaud %
Bonjour à tous :
J'ai une formule issu d'un langage de programmation et j'aimerai
réutiliser cette formule sous VBA mais elle ne fonctionne pas :
d = 2*asin( sqrt (pow(sin (($lat1-$lat2)/2),2) + (
cos($lat1)*cos($lat2)*pow( sin(($lon1-$lon2)/2),2) ) ))

VBA n'a pas l'air d'apprecier ma fonction pow !

Merci de votre aide

Arnaud


Si tu nous indiqués à quoi elle sert cette fonction pow ? et sqrt ?

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~











AV
Le #2724611
VBA n'a pas voulu de ma fonction POWER,


Et si tu avais essayé (méthode Evaluate) ce qu'on t'a proposé ?
Pffff...

AV

Publicité
Poster une réponse
Anonyme