SERIEUXETCOOL
XLDnaute Occasionnel
Bonjour à tous, bonjour le Forum,
Bien bien, me voici une nouvelle fois ici pour un nouveau besoin. Je donnerais un peu plus loin des éléments de contexte ainsi que les besoins qui animent ma venue ici.
Cette fois-ci, je pense que ma demande est un peu plus complexe que d'habitude. Je pense également, qu'elle s'adressera plus particulièrement à des développeurs expérimentés (en tout cas bien plus expérimentés que moi ça c'est sur^^). Je rappel que je suis débutant sous Vba mais ayant acquis de bonnes bases tout de même. Bien évidement tout le monde peut participer et je prends tous les conseils !
Bien maintenant entrons un peu plus dans le sujet... Je vous conseil de télécharger le fichier Excel (2003) que j'ai mis en en téléchargement en bas de page pour que vous compreniez beaucoup mieux au fur et à mesure de la lecture
Je travail sous Excel 2007, et je cherche à développer une Macro. Dans mon fichier Excel et dans la première feuille intitulée "DONNÉES" il y a un graphique. Ce graphique est tracé grâce à deux colonnes. Une première colonne pour les abscisses et une autre pour les ordonnées. En ce qui concerne les valeurs qui se trouvent dans les colonnes, on va dire qu'elles sont acquises de manière expérimentale et donc qu'il n'y a pas de formule pour trouver ces points. Pas de formule...donc pas d'équation de courbe non plus !
De plus comme vous le remarquerez très bien, cette courbe ne respecte pas l'unicité de solution. C'est à dire que pour une valeur d'abscisse X, il n'existe pas une et une seule solution. C'est bien la un des problèmes qui me pousse à développer une macro évoluée.
Maintenant que j'ai dit ça, je vais pouvoir exprimer la problématique. Voici ce que je cherche à faire sur ce graphique.
Dans une tierce colonne, il y a des valeurs qui représentent des abscisses. Et mon but va être d'associer les bonnes ordonnées qui correspondent à la colonne des abscisses par lecture graphique. Ce travail est fastidieux car il peut y avoir une cinquantaine de valeurs à lire. De plus, pour chaque abscisse il peut y avoir de multiples intersections et donc qu'il faut à chaque fois lire plusieurs ordonnées pour une même abscisse. J'ai mis en évidence ce problème sur la feuille numéro deux du fichier Excel intitulée "EXEMPLE". On y voit la multi-intersection d'une courbe par une unique valeur d'abscisse.
J'ajouterais que pour ne rien faciliter, mon graphique se trouve sur une feuille Excel, et ma colonne qui contient les valeurs des abscisses en attente de réception d'ordonnées se trouve sur une autre feuille. Du coup il faut sans arrêt jongler entre les feuilles Excel. Pas cool !
Du coup je me suis dit qu'il serait sans doute jouable via une macro Excel de faire en sorte de venir lire les valeurs sur le graphique à la place de l'utilisateur. Malheureusement, ce sont des données expérimentales et il n'y a pas d'équation de courbe qui tienne pour éventuellement calculer les valeurs d'ordonnées en fonction des abscisses. De plus, apparemment Excel ne gère pas l'intersection de courbes sur un graphique pour remonter à la cordonnée d’intersection. Pour lui, les courbes se superposent mais il ne détecte pas le passage de l'une sur l'autre. Vraiment dommage ! A moins que je me trompe ???
Du coup la seule solution que j'ai trouvé actuellement est de travailler par petits intervalles de valeurs d'abscisses et de faire une approximation linéaire par une droite affine de la forme "Y = a*X + b". Du coup pour une valeur d'abscisse données, on va chercher à encadrer cette abscisse par la première immédiatement plus petite, et la première immédiatement plus grande que la valeur d'abscisse désiré. De cette façon, on encadre l'abscisse voulu par deux autres abscisses dont on connait les ordonnées respectives. Il ne reste plus qu'a faire l’approximation linéaire et à en déduire l'ordonnée qui correspond à la valeur d’abscisse qui était demandée initialement.
Pour que sa soit plus clair pour tous, j'ai mis en feuille trois intitulée "MODÉLISATION DU PROBLÈME" la visualisation de ce que je viens de dire. Vous verrez ce n'est pas compliqué quand on voit l'exemple.
Évidement, comme pour une abscisse il peut y avoir plusieurs intersections possible, il ne faut pas oublier de boucler sur toutes les valeurs du graphique pour mettre en évidence toutes les possibilités possibles. Ce sont des choses très simples que je demande mais qui mis bout à bout deviennent vites complexes (pour moi en tout cas !)
Enfin, il y aura également une partie "visuelle" à traiter. En effet, comme il y a plusieurs solutions pour une abscisse l'idée serait de faire afficher dans une fenêtre toutes les solutions trouvées et de demander à l'utilisateur laquelle il désire garder. Que la solution choisie soit ensuite copiée dans la cellule en face de l’abscisse initiale. Et puis que le programme recommence avec une autre abscisse qui se trouve dans la cellule des abscisses suivantes...
Pour info, les valeurs d'abscisses seront étudiées dans l'intervalle [0;1] UNIQUEMENT et les valeurs d'ordonnées seront étudiées dans l'intervalle [0;500E-9] UNIQUEMENT. Les autres valeurs ne m'intéressement pas.
C'est pourquoi je viens faire appel à votre aide. Cette demande n'est pour moi pas vraiment prioritaire car ce n'est pas indispensable pour la suite de mes idées. Néanmoins, maintenant que j'ai eu l'idée d'aller plus loin et de proposer une solution envisageable ; et bien je suis vraiment curieux de voir ce que sa peut donner une fois codé. Je vais tout faire pour tenter l'expérience mais je n'ai pas le temps à me casser la tête sur ce code. C'est dommage mais c'est comme sa. Voila pourquoi je vous demande un petit coup de main pour essayer d'avancer plus vite.
Je reste disponible pour toutes vos questions que vous pourriez avoir, et évidement je reste dans le coin du mieux que je peux pour aider moi aussi.
Voila c'est finit pour le moment. J'avais averti, c'est un peu plus costaud cette fois-ci^^
Cordialement,
André
Bien bien, me voici une nouvelle fois ici pour un nouveau besoin. Je donnerais un peu plus loin des éléments de contexte ainsi que les besoins qui animent ma venue ici.
Cette fois-ci, je pense que ma demande est un peu plus complexe que d'habitude. Je pense également, qu'elle s'adressera plus particulièrement à des développeurs expérimentés (en tout cas bien plus expérimentés que moi ça c'est sur^^). Je rappel que je suis débutant sous Vba mais ayant acquis de bonnes bases tout de même. Bien évidement tout le monde peut participer et je prends tous les conseils !
Bien maintenant entrons un peu plus dans le sujet... Je vous conseil de télécharger le fichier Excel (2003) que j'ai mis en en téléchargement en bas de page pour que vous compreniez beaucoup mieux au fur et à mesure de la lecture
Je travail sous Excel 2007, et je cherche à développer une Macro. Dans mon fichier Excel et dans la première feuille intitulée "DONNÉES" il y a un graphique. Ce graphique est tracé grâce à deux colonnes. Une première colonne pour les abscisses et une autre pour les ordonnées. En ce qui concerne les valeurs qui se trouvent dans les colonnes, on va dire qu'elles sont acquises de manière expérimentale et donc qu'il n'y a pas de formule pour trouver ces points. Pas de formule...donc pas d'équation de courbe non plus !
De plus comme vous le remarquerez très bien, cette courbe ne respecte pas l'unicité de solution. C'est à dire que pour une valeur d'abscisse X, il n'existe pas une et une seule solution. C'est bien la un des problèmes qui me pousse à développer une macro évoluée.
Maintenant que j'ai dit ça, je vais pouvoir exprimer la problématique. Voici ce que je cherche à faire sur ce graphique.
Dans une tierce colonne, il y a des valeurs qui représentent des abscisses. Et mon but va être d'associer les bonnes ordonnées qui correspondent à la colonne des abscisses par lecture graphique. Ce travail est fastidieux car il peut y avoir une cinquantaine de valeurs à lire. De plus, pour chaque abscisse il peut y avoir de multiples intersections et donc qu'il faut à chaque fois lire plusieurs ordonnées pour une même abscisse. J'ai mis en évidence ce problème sur la feuille numéro deux du fichier Excel intitulée "EXEMPLE". On y voit la multi-intersection d'une courbe par une unique valeur d'abscisse.
J'ajouterais que pour ne rien faciliter, mon graphique se trouve sur une feuille Excel, et ma colonne qui contient les valeurs des abscisses en attente de réception d'ordonnées se trouve sur une autre feuille. Du coup il faut sans arrêt jongler entre les feuilles Excel. Pas cool !
Du coup je me suis dit qu'il serait sans doute jouable via une macro Excel de faire en sorte de venir lire les valeurs sur le graphique à la place de l'utilisateur. Malheureusement, ce sont des données expérimentales et il n'y a pas d'équation de courbe qui tienne pour éventuellement calculer les valeurs d'ordonnées en fonction des abscisses. De plus, apparemment Excel ne gère pas l'intersection de courbes sur un graphique pour remonter à la cordonnée d’intersection. Pour lui, les courbes se superposent mais il ne détecte pas le passage de l'une sur l'autre. Vraiment dommage ! A moins que je me trompe ???
Du coup la seule solution que j'ai trouvé actuellement est de travailler par petits intervalles de valeurs d'abscisses et de faire une approximation linéaire par une droite affine de la forme "Y = a*X + b". Du coup pour une valeur d'abscisse données, on va chercher à encadrer cette abscisse par la première immédiatement plus petite, et la première immédiatement plus grande que la valeur d'abscisse désiré. De cette façon, on encadre l'abscisse voulu par deux autres abscisses dont on connait les ordonnées respectives. Il ne reste plus qu'a faire l’approximation linéaire et à en déduire l'ordonnée qui correspond à la valeur d’abscisse qui était demandée initialement.
Pour que sa soit plus clair pour tous, j'ai mis en feuille trois intitulée "MODÉLISATION DU PROBLÈME" la visualisation de ce que je viens de dire. Vous verrez ce n'est pas compliqué quand on voit l'exemple.
Évidement, comme pour une abscisse il peut y avoir plusieurs intersections possible, il ne faut pas oublier de boucler sur toutes les valeurs du graphique pour mettre en évidence toutes les possibilités possibles. Ce sont des choses très simples que je demande mais qui mis bout à bout deviennent vites complexes (pour moi en tout cas !)
Enfin, il y aura également une partie "visuelle" à traiter. En effet, comme il y a plusieurs solutions pour une abscisse l'idée serait de faire afficher dans une fenêtre toutes les solutions trouvées et de demander à l'utilisateur laquelle il désire garder. Que la solution choisie soit ensuite copiée dans la cellule en face de l’abscisse initiale. Et puis que le programme recommence avec une autre abscisse qui se trouve dans la cellule des abscisses suivantes...
Pour info, les valeurs d'abscisses seront étudiées dans l'intervalle [0;1] UNIQUEMENT et les valeurs d'ordonnées seront étudiées dans l'intervalle [0;500E-9] UNIQUEMENT. Les autres valeurs ne m'intéressement pas.
C'est pourquoi je viens faire appel à votre aide. Cette demande n'est pour moi pas vraiment prioritaire car ce n'est pas indispensable pour la suite de mes idées. Néanmoins, maintenant que j'ai eu l'idée d'aller plus loin et de proposer une solution envisageable ; et bien je suis vraiment curieux de voir ce que sa peut donner une fois codé. Je vais tout faire pour tenter l'expérience mais je n'ai pas le temps à me casser la tête sur ce code. C'est dommage mais c'est comme sa. Voila pourquoi je vous demande un petit coup de main pour essayer d'avancer plus vite.
Je reste disponible pour toutes vos questions que vous pourriez avoir, et évidement je reste dans le coin du mieux que je peux pour aider moi aussi.
Voila c'est finit pour le moment. J'avais averti, c'est un peu plus costaud cette fois-ci^^
Cordialement,
André