Bonjour à tous,
J'essaye de faire une petite add-ons pour un jeu de simulation de vol (Flight Simulator)...
Je rencontre un petit problème sur une fonction que je souhaites réaliser :
Cette fonction à pour but de vérifier que l'appareil est orienté dans une direction donnée tout en admettant une certaine erreur (exemple vérifier qu'il suit bien un cap 310 +/- 10°).
Parce que les valeurs possibles du cap sont comprises entre 1 et 360, l'expression logique qui permettrait de vérifier cette condition se complique quelque peu.
Voici comment je pourrais traduire cette expression sous Excel :
Traduit en VB, ça donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part =SI(MIN(SI((Cap_avion-Consigne)<0;360+(Cap_avion-Consigne);(Cap_avion-Consigne));SI((Consigne-Cap_avion)<0;360+(Consigne-Cap_avion);(Consigne-Cap_avion)))<Marge_erreur;"Validé";"Non validé")
Code : Sélectionner tout - Visualiser dans une fenêtre à part If (If (If(Cap_avion - Consigne) < 0 Then (360 + Cap_avion - Consigne) Else (Cap_avion - Consigne)) < (If (Consigne - Cap_avion) < 0 Then (360 + Consigne - Cap_avion) Else (Consigne - Cap_avion)) Then (If (Cap_avion - Consigne) < 0 Then (360 + Cap_avion - Consigne) Else (Cap_avion - Consigne)) Else (If (Consigne- Cap_avion) < 0 Then (360 + Consigne- Cap_avion) Else (Consigne- Cap_avion))) < Marge_erreur Then Lavel2.Text = "Valid" Else Lavel2.Text = "Invalid"
Mais voilà, il m'indique une erreur sur le deuxième If => "Expression expected"... Je ne comprends pas pourquoi... Aurais je oublié un Then / Else quelque part?
Comment puis écrire cette fonction de manière plus digeste?
Je précise que je suis complètement débutant dans ce domaine et donc que vous voudriez bien m'excuser si je vous sollicite pour une toute petite erreur...
D'avance, je vous remercie de votre aide.
Benoît
Partager