
Envoyé par
Hasturiaz
n'étant pas un génie dans l'élaboration de macro
Ca n'a rien d irrémédiable : http://bidou.developpez.com/article/VBA/
1-me donner tout les points d'inflexion(x et y) de la courbe obtenu (pas seulement le min/max de celle ci):
- Soit en se basant du graphe
-Soit ( de manière plus précise) en se basant sur les données.
C'est sur les données que tu dois travailler.
Fais une boucle qui scrute toutes tes données.
Pour chacune, fais la différence par rapport à la données suivante.
Si cette différence est de signe différent par rapport à la différence précédente, tu tiens un des points d'inflexion.
- ces points sont visible/différencier des autres points ( changement de couleur) de la courbe
Quand tu trouves un point d'inflexion, tu peux avoir son indexe (par la variable qui s'incrémente dans ta boucle).
Tu peux alors changer les propriétés du point dans la courbe .
La syntaxe dépend de beaucoup d'éléments que tu ne donnes pas mais, par exemple, pour un graphe se trouvant dans une feuille de calcul :
Worksheets("MonOnglet").ChartObjects("Graphique 1").Chart.SeriesCollection(1).Points(10)
fait référence au point 10 de la première courbe du graphe Graphique 1 se trouvant dans la feuille MonOnglet.
Pour changer son aspect, regarde dans l'aide VBA les propriétés de l'objet Point, en particulier toutes celles commençant par Marker.
3-l'utilisateur doit pouvoir à l'issu de ces points trouvés par la macro, sélectionner 2 points et une droite se trace automatiquement entre ces 2 points ( Cf exemple fichier joint Courbe+point inflexion+droite)
L'objectif est de calculer l'air entre la courbe de base et cette droite. Donc récupérer l'équation de la droite est essentiel pour pouvoir effectuer ce calcul.
Pour ça, il faut que tu calcules l'aire se trouvant entre la courbe et l'axe des abscisses et lui soustraire l'aire se trouvant entre la droite et l'axe des abscisse.
Pour calculer l'aire entre la courbe et l'axe des abscisses, il faut que tu additionnes tous les éléments unitaires entre les points.
Cette aire élémentaire a la forme d'un trapèze. Donc la surface a pour valeur :
(Xa - Xb) * (Ya + Yb) / 2
Tu fais une boucle qui scrute tous les points concernés par la surface. Pour chacun, tu calcules cette aire élémentaire que tu additionnes pour obtenir l'aire totale.
Pour ce qui est l'aide de la droite, c'est la même chose excepté que ça se fait en une fois (pas besoin de boucle).
Partager