bonjour,
Je suis à la "construction" d'un code me permettant de trouver un
angle d’un triangle.
j'en suis là (las aussi :-((( ) :
ang = (((a * a) + (c * c) - (b * b)) / (2 * a * c))
Je n'arrive pas à utiliser la fonction cosinus pour que ang = l'angle
en degré.
a,b,c sont les longueurs des cotés
ang est la valeur de l'angle opposé à b
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FxM
Nicolas S wrote:
bonjour, Je suis à la "construction" d'un code me permettant de trouver un angle d’un triangle. j'en suis là (las aussi :-((( ) : ang = (((a * a) + (c * c) - (b * b)) / (2 * a * c)) Je n'arrive pas à utiliser la fonction cosinus pour que ang = l'angle en degré. a,b,c sont les longueurs des cotés ang est la valeur de l'angle opposé à b
merci de votre aide
Bonjour,
Premier point : Excel utilise par défaut des radians pour les calculs d'angles.
Ensuite, je n'ai pas la même formule que toi. Ce que tu appeles ang n'est pas l'angle mais son cosinus !
Dans un triangle quelconque possédant un coté de longueur b et un angle opposé beta : b^2 = c^2 + a^2 -2ac cos (beta)
Tu cherches le beta (je ne vise personne en particulier ;o)) b^2 = c^2 + a^2 -2ac cos (beta) b^2 - c^2 - a^2 = -2ac cos (beta) - b^2 + c^2 + a^2 = 2ac cos (beta) cos (beta) = (-b^2 + c^2 + a^2) / (2ac) beta = degres(acos (...))
Par formule de feuille : ÞGRES(ACOS((a*a -b*b +c*c)/(2*a*c))) ÞGRES(ACOS((-B3*B3+B2*B2+B4*B4)/(2*B2*B4)))
Par macro ou fonction perso : Sub test() a = 1 b = 1 c = 1 cosb = (a * a + c * c - b * b) / (2 * a * c) beta = _ Application.WorksheetFunction.Degrees(Application.WorksheetFunction.Acos(cosb)) End Sub
@+ FxM
Nicolas S wrote:
bonjour,
Je suis à la "construction" d'un code me permettant de trouver un
angle d’un triangle.
j'en suis là (las aussi :-((( ) :
ang = (((a * a) + (c * c) - (b * b)) / (2 * a * c))
Je n'arrive pas à utiliser la fonction cosinus pour que ang = l'angle
en degré.
a,b,c sont les longueurs des cotés
ang est la valeur de l'angle opposé à b
merci de votre aide
Bonjour,
Premier point :
Excel utilise par défaut des radians pour les calculs d'angles.
Ensuite, je n'ai pas la même formule que toi. Ce que tu appeles ang
n'est pas l'angle mais son cosinus !
Dans un triangle quelconque possédant un coté de longueur b et un
angle opposé beta : b^2 = c^2 + a^2 -2ac cos (beta)
Tu cherches le beta (je ne vise personne en particulier ;o))
b^2 = c^2 + a^2 -2ac cos (beta)
b^2 - c^2 - a^2 = -2ac cos (beta)
- b^2 + c^2 + a^2 = 2ac cos (beta)
cos (beta) = (-b^2 + c^2 + a^2) / (2ac)
beta = degres(acos (...))
Par formule de feuille :
ÞGRES(ACOS((a*a -b*b +c*c)/(2*a*c)))
ÞGRES(ACOS((-B3*B3+B2*B2+B4*B4)/(2*B2*B4)))
Par macro ou fonction perso :
Sub test()
a = 1
b = 1
c = 1
cosb = (a * a + c * c - b * b) / (2 * a * c)
beta = _
Application.WorksheetFunction.Degrees(Application.WorksheetFunction.Acos(cosb))
End Sub
bonjour, Je suis à la "construction" d'un code me permettant de trouver un angle d’un triangle. j'en suis là (las aussi :-((( ) : ang = (((a * a) + (c * c) - (b * b)) / (2 * a * c)) Je n'arrive pas à utiliser la fonction cosinus pour que ang = l'angle en degré. a,b,c sont les longueurs des cotés ang est la valeur de l'angle opposé à b
merci de votre aide
Bonjour,
Premier point : Excel utilise par défaut des radians pour les calculs d'angles.
Ensuite, je n'ai pas la même formule que toi. Ce que tu appeles ang n'est pas l'angle mais son cosinus !
Dans un triangle quelconque possédant un coté de longueur b et un angle opposé beta : b^2 = c^2 + a^2 -2ac cos (beta)
Tu cherches le beta (je ne vise personne en particulier ;o)) b^2 = c^2 + a^2 -2ac cos (beta) b^2 - c^2 - a^2 = -2ac cos (beta) - b^2 + c^2 + a^2 = 2ac cos (beta) cos (beta) = (-b^2 + c^2 + a^2) / (2ac) beta = degres(acos (...))
Par formule de feuille : ÞGRES(ACOS((a*a -b*b +c*c)/(2*a*c))) ÞGRES(ACOS((-B3*B3+B2*B2+B4*B4)/(2*B2*B4)))
Par macro ou fonction perso : Sub test() a = 1 b = 1 c = 1 cosb = (a * a + c * c - b * b) / (2 * a * c) beta = _ Application.WorksheetFunction.Degrees(Application.WorksheetFunction.Acos(cosb)) End Sub
@+ FxM
mcnsaillard
Alors, descend, descend et tu vas voir
Application.WorksheetFunction.Degrees(Application.WorksheetFunction.Acos(cosb)) application.worksheetfunction. ... permet d'utiliser des fonctions de
feuille dans VBA. C'est ce que j'ai fini par comprenrde.Ton aide m'a été bénéfique, ca
marche.j'ai appliqué ta solution comme cela:
dans une premiere proc:
ang1 = (((a * a) + (c * c) - (b * b)) / (2 * a * c)) acos ang1
ce qui appelle:
Sub acos(cosb)
ang = Application.WorksheetFunction.Degrees(Application.WorksheetFunction.acos(cosb)) End Sub
L'aide sous Excel ou VBA, c'est F1. N'hésite pas à revenir si tu as des problèmes.
F1 est presque la touche la plus "sale" de mon clavier ;-))
@+ FxM
merci FxM
Alors, descend, descend et tu vas voir
Application.WorksheetFunction.Degrees(Application.WorksheetFunction.Acos(cosb))
application.worksheetfunction. ... permet d'utiliser des fonctions de
feuille dans VBA.
C'est ce que j'ai fini par comprenrde.Ton aide m'a été bénéfique, ca
marche.j'ai appliqué ta solution comme cela:
dans une premiere proc:
ang1 = (((a * a) + (c * c) - (b * b)) / (2 * a * c))
acos ang1
ce qui appelle:
Sub acos(cosb)
ang = Application.WorksheetFunction.Degrees(Application.WorksheetFunction.acos(cosb))
End Sub
L'aide sous Excel ou VBA, c'est F1. N'hésite pas à revenir si tu as
des problèmes.
F1 est presque la touche la plus "sale" de mon clavier ;-))
Toutes les fonctions de feuille de calcul étant accessibles par la méthode 'Evaluate', tu pourrais aussi faire ça :
a = 1: b = 1: c = 1 cosb = (a * a + c * c - b * b) / (2 * a * c) ang = Evaluate("Degrees(Acos(" & cosb & "))")
AV
mcnsaillard
"AV" wrote in message news:...
Toutes les fonctions de feuille de calcul étant accessibles par la méthode 'Evaluate', tu pourrais aussi faire ça :
a = 1: b = 1: c = 1 cosb = (a * a + c * c - b * b) / (2 * a * c) ang = Evaluate("Degrees(Acos(" & cosb & "))")
AV
bonjour Alain et merci de ta participation. J'ai essayé le code que tu m'as transmis, la valeur que me donne ang est "erreur 2015". J'utilise excel 97-sr1
@+ j'en profite pour remercier l'ensemble des Joyeux Participants Serviables pour l'animation de ce.... non DU forum dédié à Excel. J'ai cru comprendre que la bonne humeur était une règle ici mais pas employée _uste _our _auver les apparences. :-)))
"AV" <alain.vallon@wanadoo.fr> wrote in message news:<usVq1DzTDHA.2196@TK2MSFTNGP12.phx.gbl>...
Toutes les fonctions de feuille de calcul étant accessibles par la méthode
'Evaluate', tu pourrais aussi faire ça :
a = 1: b = 1: c = 1
cosb = (a * a + c * c - b * b) / (2 * a * c)
ang = Evaluate("Degrees(Acos(" & cosb & "))")
AV
bonjour Alain et merci de ta participation.
J'ai essayé le code que tu m'as transmis, la valeur que me donne ang
est "erreur 2015".
J'utilise excel 97-sr1
@+
j'en profite pour remercier l'ensemble des Joyeux Participants
Serviables pour l'animation de ce.... non DU forum dédié à Excel.
J'ai cru comprendre que la bonne humeur était une règle ici mais
pas employée _uste _our _auver les apparences. :-)))
Toutes les fonctions de feuille de calcul étant accessibles par la méthode 'Evaluate', tu pourrais aussi faire ça :
a = 1: b = 1: c = 1 cosb = (a * a + c * c - b * b) / (2 * a * c) ang = Evaluate("Degrees(Acos(" & cosb & "))")
AV
bonjour Alain et merci de ta participation. J'ai essayé le code que tu m'as transmis, la valeur que me donne ang est "erreur 2015". J'utilise excel 97-sr1
@+ j'en profite pour remercier l'ensemble des Joyeux Participants Serviables pour l'animation de ce.... non DU forum dédié à Excel. J'ai cru comprendre que la bonne humeur était une règle ici mais pas employée _uste _our _auver les apparences. :-)))
AV
bonjour Alain et merci de ta participation. J'ai essayé le code que tu m'as transmis, la valeur que me donne ang est "erreur 2015". J'utilise excel 97-sr1
Ben je peux pas te dire avec XL97 sr1 mais avec XL97 sr2 ce truc là :
Sub zz() a = 1: b = 1: c = 1 cosb = (a * a + c * c - b * b) / (2 * a * c) MsgBox Evaluate("Degrees(Acos(" & cosb & "))") End Sub
...me renvoie bien 60 !
AV
bonjour Alain et merci de ta participation.
J'ai essayé le code que tu m'as transmis, la valeur que me donne ang
est "erreur 2015".
J'utilise excel 97-sr1
Ben je peux pas te dire avec XL97 sr1 mais avec XL97 sr2 ce truc là :
Sub zz()
a = 1: b = 1: c = 1
cosb = (a * a + c * c - b * b) / (2 * a * c)
MsgBox Evaluate("Degrees(Acos(" & cosb & "))")
End Sub
bonjour Alain et merci de ta participation. J'ai essayé le code que tu m'as transmis, la valeur que me donne ang est "erreur 2015". J'utilise excel 97-sr1
Ben je peux pas te dire avec XL97 sr1 mais avec XL97 sr2 ce truc là :
Sub zz() a = 1: b = 1: c = 1 cosb = (a * a + c * c - b * b) / (2 * a * c) MsgBox Evaluate("Degrees(Acos(" & cosb & "))") End Sub