Approximation d'une courbe "particulière" sous Excel par une droite affine

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é
 

Pièces jointes

  • MODELISATION DU PROBLEME APPROXIMATION.xls
    59.5 KB · Affichages: 120
  • MODELISATION DU PROBLEME APPROXIMATION.xls
    59.5 KB · Affichages: 131
  • MODELISATION DU PROBLEME APPROXIMATION.xls
    59.5 KB · Affichages: 131

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Re,

jDonc j'y tiens absolument à mon affichage correct.
:) C'est fait. Tu n'avais pas répondu explicitement mais j'ai supposé que c'était bien le format ingénieur que tu voulais, j'ai ajouté une fonction.
quand on fais valider sur une des ordonnées proposées et bien le OptionButton se désactive
ligne supprimée.
-La case que tu as ajoutée "Valeur proche" m'a donnée une idée encore meilleure !!!
Le gros morceau du jour...
C'est donc maintenant valeurLibre.
- Avec 2 spinbutton pour incrémenter de 0.010 et 0.001.
- Si valeurLibre est vide, sur clic d'un spinbutton la valeur en cours est récupérée.
- Si saisie directe ne pas saisir le 0 devant le point mais .654 J'ai eu la flemme de chercher le pourquoi du comment ;-)
- Les optionbutton et le bouton Valider sont disabled, comme ça pas d'ambigüité sur le mode dans lequel on est.
- Si valeurLibre est vidé, ou clic sur Fin, ou clic sur un objet extérieur, on quitte le mode libre et la valeur antérieure est récupérée pour remise à jour du graphique.
plutôt que d'avoir un bouton de commande situé sous le graphique qui affiche le formulaire, est il possible de faire directement afficher le formulaire sans passer par le bouton d'action ?
Maintenant le formulaire s'ouvre automatiquement sur activation de la feuille Exemple.
Si fermeture par inadvertance, faire un aller-retour sur une autre feuille.

Pfiouuuu, on dirait que le bébé se présente bien et que la délivrance est proche ;-)
Je crois n'avoir rien oublié, sinon tu dis.

Je suis un peu fatigué ce soir, il y a eu de gros changements, je n'ai peut-être pas tout débugué.
Contrôle tout bien à fond, revenir dessus 2-3 jours plus tard est beaucoup plus dur. Là déjà je commençais à avoir du mal à m'y retrouver dans les variables et les interactions.

Moi j'ai débuté depuis 6 mois et j'ai déjà fait de belles petites choses, mais je met trop de temps. C'est bien dommage. J'ai les idées, mais ne sais pas les codées
J'en fait très régulièrement depuis 4-5 ans.
Au début c'est vrai que ça parait vaste, 4 ans plus tard ça parait toujours aussi vaste ;-)
Mais on finit par perdre moins de temps grâce à un peu plus de maitrise sur le B.A.BA et sur les besoins récurents.
Même si tu passes du temps pour une bricole ce n'est jamais du temps perdu, et puis tu n'as pas l'air d'être complètement à la ramasse.
Du temps, c'est ça qu'il faut et qui manque le plus souvent...

Aller sur les forums d'entraide est une très bonne école :)

Bon jeu :)
A+

PS: et c'est à travers quel milieu ou matière ces mesures ?
eric

Edit: je pense qu'il faudra revenir sur la sortie du mode libre par un clic extérieur. Les boutons de scrolling font également sortir de ce mode...

edit2: oupsss, ajout du fichier
 

Pièces jointes

  • MODELISATION DU PROBLEME APPROXIMATION-6.7.xls
    161.5 KB · Affichages: 56
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Bonjour,

Correction d'un petit bug : on perdait la position de la ligne rouge si on allait sur une autre fenetre.
+ ajout de l'ordonnée validée dans le message 'abscisse en cours'.
Et tu as le pavé d'hier soir à lire... :)
eric
 

Pièces jointes

  • MODELISATION DU PROBLEME APPROXIMATION-6.8.xls
    150 KB · Affichages: 64

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Bonjour le Forum, Eric,

J'ai pu tester ton fichier Eric. Je ne suis pas sur de ce que je vais dire, mais il me semble qu'il reste des bugs non corrigés dans cette version. Et que de plus, de nouveaux bugs suite à ce que tu as rajouté sont également apparus.

Je vais essayer de les lister tous ici :

-J'aurais aimé que lorsque l'on fait valider sur une des ordonnées proposées (quand on utilise la saisie par ligne ou alors avec abscisse précédente ou suivante) et bien que le OptionButton garde en mémoire la valeur de l'ordonnée qui avait été choisie. En gros que le optionbuton reste enclenché pour avoir l'info en live.
Ainsi, si je veux savoir quelle ordonnée j'avais validé antérieurement, et bien il me suffit de cliquer sur abscisse précédente ou suivante. Ce qui m'évite de devoir changer de feuille pour aller vérifier ce qui a été entré dans la table en feuille "Liste Abscisses". Le but étant qu'a chaque fois que je valide une ordonnée parmi celles proposées, et bien que le optionbutton garde ce choix enclenché par défaut.
Je ne sais pas si je suis clair dans ma description ? Je dis ça, car je n'ai vu aucun changement de ta part sur ce problème la. L'as tu vu ? L'as tu oublié ? As tu volontairement passé outre ?

Dans ta réponse tu indique seulement ceci :

quand on fais valider sur une des ordonnées proposées et bien le OptionButton se désactive.
ligne supprimée.
Je n'arrive pas à me faire une idée sur ta réponse.


-Ensuite, j'attendais également que l'utilisateur puisse entrer une valeur libre dans la case que tu as bien mis en place, et qu'une fois la valeur entrée alors que la courbe rouge sur le graphique se place automatiquement en fonction de ce qui est saisi en live, ET que le programme génère les intersections ET qu'il les affiche parmi les 10 optionButtons disponibles que tu as mis en place.
De cette façon, l'utilisateur peut entrer la valeur d'abscisse qu'il veut simplement pour étudier les valeurs d'ordonnées. En aucun on ne peut valider une des ordonnées car la valeur en saisie libre ne fait pas partie de la table située en feuille "Liste Abscisses". Et je ne désire pas qu'elle en fasse partie ! C'est juste pour étudier la courbe sans rien enregistrer. donc impossibilité de choisir rendre un optionButton enabled, ET par voie de conséquence, ne jamais permettre de mettre le bouton valider enabled.
Ça c'était la demande que j'aurais aimé avoir, malheureusement je ne suis pas très convaincu du résultat pour le coup^^. C'est pas méchant Eric !!! Autant je reste franc quand je suis bluffé, autant je reste objectif quand ça me parait moins génial.

Je m'explique...

Pour commencer, tu dis que l'on ne peut pas entrer de valeur libre sous la forme 0.XXX mais directement .XXX. 2 choses à soulever : C'est dommage que l'on ne puisse pas entrer la valeur au bon format non ??? Mais bon ça tu l'a clairement dit dans ton post. Donc tu l'as vu. Par contre ce qui m'embête plus, c'est que de mon côté je puisse entrer une valeur sous la forme .XXX mais que RIEN ne se passe. La c'est carrément plus embêtant lol. Je tape par exemple .433 puis entrer (ou tab) et rien. Je m'attendais au moins à voir apparaître les propositions de solutions d'intersections trouvées mais non^^ Du coup, cette case est fort utile...mais ne remplie pas sa fonction première d'affichage des intersections trouvées en fonction d'une valeur d'abscisse quelconque. J'avais les boules de pas en voir plus sur le coup. Sa me donnais trop envie de tester l'option^^. Car c'est une case primordiale. (Ah oui, même la courbe rouge ne bouge pas !)
Si éventuellement ce n'est pas gérable comme demande, alors je dispose toujours d'une solution alternative (moins class mais qui débrouille). Dans ce cas, lorsque je veux consulter des valeurs d'abscisses de la courbe et bien j'utilise le petit tableau qui a été codé en tout début d'étude de faisabilité du projet. (intitulé "Définir une abscisse et vérifier le nombre d'intersections ainsi que les valeurs"). C'est "bête" de devoir l'utiliser, mais si on peut pas faire autrement alors c'est bien qu'il soit la. Mais j'avoue que je comptais justement m'en débarrasser en proposant la case "valeur libre" disponible dans le formulaire. C'était l’occasion de tout regrouper pour faire de la place en lisibilité et efficacité.

Autre chose, si j'entre en valeur libre 0.5 ou .5 c'est la même chose rien ne ce passe avec ou sans le 0. Par contre si j'entre une virgule à la place du point alors la le programme n'aime pas du tout. il faudrait mettre en place un filtre sur les valeurs acceptées en entrée (0123456789,.) Je l'ai déjà fait par le passé. Et j'avais même réussi à convertir le point en virgule. Je n'ai plus le code sous les yeux mais je peux le retrouver. Et je sais de mémoire que c'était relativement simple et rapide à mettre en œuvre. Donc si possible d'avoir un contrôle sur la saisie pour éviter de générer une erreur inutilement.


Et la dernière remarque :

- Les optionbutton et le bouton Valider sont disabled, comme ça pas d'ambigüité sur le mode dans lequel on est.
- Si valeurLibre est vidé, ou clic sur Fin, ou clic sur un objet extérieur, on quitte le mode libre et la valeur antérieure est récupérée pour remise à jour du graphique.

La encore les deux boutons d'incréments sont totalement inefficaces chez moi. Bizarre. En tout cas, je voulais ajouté que ces deux boutons la (les incréments) me sont totalement inutile. L'idée est bonne mais je ne veux vraiment pas surcharger le formulaire. Cette fois ci, je ne vais pas garder ton idée simplement pour ne pas alourdir le truc. Donc si tu pouvais les retirer ce serait bien.Par contre la encore l'idée est bonne Eric !
De même en ce qui concerne le bouton "fin". Est il possible de le supprimer pour les mêmes raisons ? En plus ça te fera gagner du temps si on supprime certaines choses. Comme ça, si on entre une valeur libre alors le mode s'active, et dès lors que l'on clique sur une valeur de ligne, OU abscisse précédente OU abscisse suivante OU quitter le formulaire alors on reviens par défaut sur le mode de saisis automatique (donc par défaut sur la première valeur d'abscisse disponible sur la feuille "Liste Abscisses")


Et voila, je pensais que l'on verrait le bout today, mais visiblement c'est reparti pour un tour d'améliorations on dirait^^. Mais bon vaut mieux

J'ai pris le temps de voir tous ce qui clochait encore et je n'ai rien trouvé d'autre que ça.

Je vais essayer de remettre la main sur le bout de code qui permet de filtrer les valeurs entrée en "Valeur libre". Et si je trouve une anomalie supplémentaire je t'en fais part.

J'espère que ma demande passera...

Tous les conseils sont bon à prendre alors si quelqu’un peut conseiller je suis preneur !

André
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Re,

à se demander si tu n'es pas sur ancienne version... actuellement c'est la 6.8
Sur excel 2003 sous win7 ça fonctionne bien comme expliqué, je ne constate de rien de tout ce que tu annonces (?)

quand on fais valider sur une des ordonnées proposées et bien le OptionButton se désactive.
ligne supprimée.
Comprendre que la ligne de code OptionButtox= false sur la validation a été supprimée, donc il reste sélectionné.
Si tu vas sur la valeur suivante et que tu reviens, là il est désélectionné pour signaler qu'il n'y aucune validation sur ce nouvel affichage.
Par contre maintenant on peut lire dans le textbox en haut la valeur affectée précédemment.
Si tu y tiens vraiment je pourrais voir pour le re-sélectionner sur un ré-affichage...

Eventuellement je me pencherais pour que la saisie de 0.xxx ne pose problème.

Mais dans un 1er temps j'aimerais que tu retestes et confirmes. Méfie toi quu'excel ne recharge pas un fichier temporaire. Enregistre le fichier avant de l'ouvrir à tout hasard...
Si ça persiste je ne vois que faire puisque chez moi ça fonctionne

eric
 
Dernière édition:

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Eric tu soulève la question du versionning. Alors en effet ça pourrait venir de la. Je m'explique. J'utilise un ordinateur Mac au bureau. Mais je teste toute ma Macro sous XP et Excel 2007. Du coup j'ai du me débrouiller pour installer XP sur Mac (C'est ballo je sais !). Et comme je n'ai pas besoin de connexions au réseaux...j'ai tout fermé. Pas de mise à jours, pas d'internet, absolument rien.
Donc c'est fort possible qu'il me manque des choses depuis le temps. J'ai jeté un oeil sur vba...J'utilise Microsoft Visual Basic 6.3

Faudra attendre ce soir que je teste sur mon ordi perso. Pourtant c'est la première fois que ça bloquerait. Et c'est quand même bizarre que ça bloque que les derniers éléments de ton code. Bon ben on va attendre patiemment ce soir...Je vais peut être rentrer plus tôt pour le coup^^


Ensuite,

en effet quand on valide un optionButton, alors il reste enclenché tant que l'on n'a pas changé de valeur d'abscisse. C'est super ! Au moins comme ça, on peut cliquer réfléchir et décider si l'on change ou pas de valeur. Mais, et il y a un mais, si l'on clique sur une valeur ET que l'on change de feuille puis que l'on revient sur la feuille précédente alors automatiquement le formulaire est réactivé par l’évènement que tu as mis en place. Donc du coup on recharge la config de base et l'otpionButton se retrouve désactivé. Donc on perd de nouveau la valeur d'ordonnée que l'on avait déterminée dans un premier temps. Donc rebelote pour réfléchir si on a pas fait l'effort de mémoriser quelle solution on avait choisie juste avant que ça disparaisse. Pense tu pouvoir y remédier ? (J'avais averti, ça semblait difficile à programmer selon moi, mais pas impossible)
De plus je viens de m'apercevoir qu'en effet la valeur anciennement choisie est affiché dans la textBox juste au dessus. Mais comme tu peux t'en rendre compte, ce n'est pas intuitif si on ne le sais pas. Or moi je veux que ça percute directe sans ce poser de questions. Pour moi un bon code c'est ça. Aucune question à se poser, ça déroule tout seul vite fait bien fait. C'est peut être pour ça aussi que je met plus de temps à coder car je prends le temps de m’accommoder à toutes les éventualités possibles. Mais quand c'est bien fait, c'est que du bonheur de se servir du code. Mais ça demande de se casser la tête je l'avoue.

Donc je le redis, serait il possible de supprimer la valeur que l'utilisateur à choisie précédemment de la textbox ET de la garder en mémoire pour chaque optionButton ET pour chaque valeur de la table parcourue ? C'est presque ce que ton code propose. il ne manque pas grand chose pour que ça soit parfait celons moi. Comme ça, si l'utilisateur à validé une optionBox il le sait directement car il lui suffit de se placer sur la valeur d’abscisse qu'il veut. Si pour une valeur d'abscisse, aucune ordonnée n'est choisie, c'est que l'utilisateur n'a pas encore fait valider tout simplement.( donc s'il n'y a qu'une seule solution trouvée, bien penser à ne pas la sélectionner par défaut sinon on ne peut pas savoir si l'unique solution proposée a été validée par défaut par le programme ou si c'est l'utilisateur qui l'a fait). Donc toujours proposer les optionButton vide ET laisser uniquement l'utilisateur choisir si oui ou non il veut enclencher un optionButton Et si oui ou non il veut valider ensuite.
Ça peut paraitre un peu compliqué dis comme ça, mais c'est plus que logique en condition réelle.


Il y a également le problème de ne pas pouvoir entrer une valeur libre sous le bon format. Je trouve ça vraiment dommage, et surtout je me demande bien pourquoi diable ça n'est pas possible ??? Je trouve pas la raison, donc c'est possible de le faire^^. Si tu peux y jeter un oeil ce serait top Eric.


Ah j'oubliais, n'oublie pas de supprimer également les spin qui permettent d'incrémenter ainsi que le bouton fin pour quitter le mode d'entrée de valeurs libre. Perso je n'arrive pas à accrocher la. En fait c'est surtout que je ne voit pas l'utilité ??? Pourquoi vouloir incrémenter d'un pas de 0.010 ou 0.001 quand on peut directement entrer la valeur désirée ? Et si tu pense que l'on peut avoir envie de se balader sur la courbe par petits incréments, la réponse est non. On aura surtout envie de tester plusieurs valeurs aléatoires très distinctes les unes des autres. Donc pour le coup, l'incrément de quelque nature qu'il soit, n'est pas intéressant ici. Donc comme ce bouton ne sera jamais usité, c'est pour ça que j'aime autant le supprimer de base. Et pareil pour le bouton fin, ce n'est pas intuitif de devoir cliquer sur Fin pour sortir du mode valeur libre. On aura surtout envie de cliquer sur abscisse précédente ou abscisse suivante ou voir même directement un numéro de ligne. Au pire on clique sur quitter pour tout fermer mais jamais sur fin entre temps. Voila pourquoi j'aimerais voir ce bouton disparaitre également^^


Je dois vraiment avoir l'air casse cou... avec mes remarques. J'en suis persuadé. Je m'en excuse par la même ocasion car ce n'est vraiment pas mon but. Simplement le désir de voir un projet bien fait à 100%. Et comme tu l'as dit, ça devient compliqué pour toi si je reviens te voir 3 jours plus tard pour rectifier un truc. Donc autant le faire maintenant.

Pour ne pas faire le mec qui remarque uniquement les défauts je vais également lister brièvement les changements positifs qui ont bien été pris en compte. A savoir, le format correct du premier OptionButton. Sa me fait trop plaisir de voir que tu as pu rectifier le tir. Au moins maintenant c'est un vrai régal de lire toutes les valeurs trouvées. On en parle plus comme ça.
De même en ce qui concerne le déclenchement automatique du formulaire ça me plais vraiment bien. C'est top je trouve ( a part le fait que lorsque je valide un optionButton, que je change de feuille et que je revienne mon optionButton validé aie disparu à cause de l'événement)


Voili voila pour les modifs qu'il reste à faire. En ce qui concerne le versionning, je suis convaincu que sa marchera chez moi ce soir. A moins que le fait d'utiliser Excel 2003 pour toi et 2007 pour moi pose vraiment problème !!)

Bien cordialement,

André
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Re,

De plus je viens de m'apercevoir qu'en effet la valeur anciennement choisie est affiché dans la textBox juste au dessus. Mais comme tu peux t'en rendre compte, ce n'est pas intuitif si on ne le sais pas.
N'exagerons pas. Une fois qu'on le sait, on le sait. Moi s'il me manque une donnée je regarde à l'écran si elle n'est pas qcq part, et si l'utilisateur ne le sait pas c'est que ça a mal été présenté ou qu'il était distrait à ce moment là.
Si tu vas par là l'utilisateur peut oublier de regarder les optionbuttons et on pourrait rajouter un msgbox pour lui rappeler de les regarder.

Mais, et il y a un mais, si l'on clique sur une valeur ET que l'on change de feuille puis que l'on revient sur la feuille précédente alors automatiquement le formulaire est réactivé par l’évènement que tu as mis en place.
Ce n'est qu'une question de choix et de point de vue.
Moi il me paraissait plus intéressant de signaler à l'utilisateur qu'il avait déjà validé une valeur mais dans ton cas ça ne semble pas approprié.
Je supprimerais donc toutes les lignes qui concerne cette gestion.

serait il possible de supprimer la valeur que l'utilisateur à choisie précédemment de la textbox
Heu là je ne comprend pas, tu n'as jamais parlé de supprimer des valeurs, et je ne sais pas quoi et où...
Si c'est supprimer l'ordonnée dans 'liste Abscisse' oui on peut rajouter un bouton.
ET de la garder en mémoire pour chaque optionButton ET pour chaque valeur de la table parcourue ?
ça aussi c'est nouveau pour moi.
La valeur sélectionnée et validée apparait dans le textbox, ce n'est pas suffisant ?

Il y a également le problème de ne pas pouvoir entrer une valeur libre sous le bon format. Je trouve ça vraiment dommage, et surtout je me demande bien pourquoi diable ça n'est pas possible ??? Je trouve pas la raison, donc c'est possible de le faire^^. Si tu peux y jeter un oeil ce serait top Eric.
J'ai déjà répondu : j'ai dit que je verrais, voyons déjà le fonctionnement global
Je trouve pas la raison, donc c'est possible de le faire^^
Je vais prendre ça pour de l'humour et je répondrais : c'est que tu n'as pas assez cherché

Ah j'oubliais, n'oublie pas de supprimer également les spin qui permettent d'incrémenter ainsi que le bouton fin pour quitter le mode d'entrée de valeurs libre...je ne voit pas l'utilité....
Je l'ai mis sans doute par que tu avais écrit Ainsi ça nous permet de nous balader sur la courbe et mieux l'étudier.
Ce n'est pas le plus important ni le plus dur. Et je vais faire moi aussi de l'humour : même toi tu peux y arriver (indice 1 : touche Suppr).

Et pareil pour le bouton fin, ce n'est pas intuitif de devoir cliquer sur Fin pour sortir du mode valeur libre.
Rien n'est intuitif chez toi. Moi quand je vois 'fin' je me doute que c'est pour finir...
C'est en général la solution choisie pour quitter un mode particulier. Ce n'est qu'ensuite que j'ai ajouté d'autres façons de quitter ce mode pour plus de souplesse.
Tu peux également faire Suppr sur ce bouton pour l'enlever...

J'attend des éclaircissement sur ET de la garder en mémoire pour chaque optionButton ET pour chaque valeur de la table parcourue ? avant de me repencher dessus
Dans quel but, pour en faire quoi ?

Si c'est pour des changements qui chamboulent tout, alors que si c'était dit au départ c'était intégré dans la demande avec un code cohérent alors c'est non.
A faire des modifs comme ça, c'est ainsi qu'on se retrouve avec un code bancal parce qu'on n'a pas envie de tout reprendre à zéro et qu'on met des rustines à droite et à gauche, sans forcément voir un impact sur autre chose qui semble n'avoir rien à voir...

Je pense que tu as compris qu'il faut rester raisonnable et éviter de pousser le bouchon un peu trop loin.
Regarde le chemin parcouru depuis ton premier post...

eric
 

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

RE,

Oui il est vrai que depuis le début de la conversation le code à bien évolué. Je dois l’admettre les résultats sont allés bien au delà de mes espérances. Et tout cela principalement grâce à toi Eric. Et je ne le cache pas.

Je qualifierai la discussion comme étant portée sur deux axes principaux qui sont les suivants : Dans un premier temps l'étude de la faisabilité de la demande via une première solution basique (ça c'est fait), et ensuite l'amélioration de la solution via la description d'un formulaire basique mais complet en même temps (c'est le point de discussion actuel)
Ce qui est sur, c'est qu'il n'y aura pas plus de points à traiter. Je ne rajouterais rien de plus que tu ne sais déjà. Donc il ne reste bien que ces 3 ou 4 points dur à essayer de finaliser. Et je peux comprendre que je devienne agaçant, et que je me repose sur mes lauriers.

Je vais donc poster le fichier avec tous les petits changements que je peux faire. Donc ça se traduit par une suppression de tout ce que je peux sans affecter l'ensemble du code. J'essaie ça de suite. Si j’obtiens un code qui fonctionne toujours, alors je poste immédiatement.

En ce qui concerne la gestion des ordonnées mises en mémoire, c'est bien ce qu'il me semblais je n'ai pas été clair.

Je reprends donc d'une autre manière (dsl si je ne suis pas clair Eric, je fais de mon mieux pour être complet).

-Quand on valide une ordonnée parmi les 10 proposées, alors la valeur sélectionnée apparait dans la textBox au dessus -> Je ne veux pas que ça apparaisse dans la textBox justement. Donc je vais essayer de supprimer les lignes associées si j'y arrive. (Il s'agit de supprimer les lignes de codes qui font écrire la valeur dans la textbox. C'est juste un souci d'affichage. Rien à voir avec supprimer ou ajouter de nouvelles valeurs dans la table). Rien de méchant quoi.

-Quand je valide une ordonnée parmi les 10 proposées, alors le optionButton reste enclenché pour me signaler la valeur que j'ai choisis. Mais dès lors que je fais abscisse suivante, puis abscisse précédente le optionButton n'est plus allumé sur la valeur que j'avais choisie. J'ai donc perdue une info utile. Et je ne veux pas lire cette valeur dans la textbox mais bel et bien que le optionButton reste allumé quand je clique dessus. C'est un genre de transfert finalement. De la textBox à l'optionButton. Rien de plus la encore.

Je ne sais pas si je suis plus clair ainsi ? En tout cas c'est le même message que j'ai voulu faire passer.

N'hésite surtout pas à me redemander des infos si des doutes persistent. En effet, ma logique diffère souvent de la plus part. On m'a déjà fait cette remarque plusieurs fois. On fait ce que l'on peut hein^^

Allez je vais supprimer un peu tout ce que je peux dans le code et le poster ici. Laisse moi 30 min.

André
 
Dernière édition:

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Me revoilà,

Je poste ci-après le fichier avec le formulaire épuré. Comme je le savais, il n'y a pas grand chose à supprimer vu que presque tout est parfait.

-Suppression des spins d'incréments -> OK
-Suppression de l’affichage de la valeur sélectionnée par l'utilisateur dans la textBox -> Echec

Ça m'a pris 5 min pour trouver ce qu'il fallait enlever. Par contre pour le Label1 qui affiche la valeur d'ordonnée qui a été sélectionnée précédement (celui que justement je ne veux plus faire afficher ici), ben je ne suis pas arrive pas le retirer correctement du MsgBox. Il m'aura énervé tout le long ce petit détail on dirait bien !!!

Voila donc mon conseil quand même, vue que ça m'a pris moins de 5 min pour supprimer les quelques lignes de trop, je pense qu'il est préférable que tu les supprime toi même en 1 min à partir de ton fichier original si tu veux être sur de toi. Maintenant c'est juste mon conseil, rien de plus. Tu peux utiliser mon nouveau fichier si tu veux.

Si tu as des questions je suis dans le coin...

André
 

Pièces jointes

  • MODELISATION DU PROBLEME APPROXIMATION-6.9.xls
    133 KB · Affichages: 56
  • MODELISATION DU PROBLEME APPROXIMATION-6.9.xls
    133 KB · Affichages: 58
  • MODELISATION DU PROBLEME APPROXIMATION-6.9.xls
    133 KB · Affichages: 55
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Re,

Ça m'a pris 5 min pour trouver ce qu'il fallait enlever.
Oui, c'est ce que je disais. C'est purement cosmétique, ça n'a pas grande importance et ça tu peux le régler toi même.

Regarde ce que tu penses de cette version (testée à minima...)

eric
 

Pièces jointes

  • MODELISATION DU PROBLEME APPROXIMATION-6.9.xls
    127 KB · Affichages: 57
  • MODELISATION DU PROBLEME APPROXIMATION-6.9.xls
    127 KB · Affichages: 61
  • MODELISATION DU PROBLEME APPROXIMATION-6.9.xls
    127 KB · Affichages: 62

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Oui Oui Oui !!!

La je dis oui ça ressemble carrément à l'idée que j'en avais. En fait c'était plus un problème de communication je pense. Je me suis mal exprimé, et puis en décrivant bien tout comme il faut à la fin on s'y perd un peu. Mais si on dit juste ce que l'on attend, c'est très difficile en face de comprendre sans les éléments de réponse qui vont bien.

Bref, l'important c'est que l'on se soit mieux entendus sur la fin. Je suis bien content.

Je suis toujours au boulot, et je confirme que la saisie par valeurs libre ne fonctionne toujours pas. Je vais rentrer chez moi pour tester ça pépère sur mon pc perso. En espérant que sa fonctionne mieux, sinon j'ai les boules.

Je te fait un retour dès que je serais rentré. Avant de partir, je dirais que j'ai quand même eu le tps d'observer un détail que tu as du oublier. Ou que tu n'a pas eu le temps de traiter. C'est le fait que lorsque qu'une seule ordonnée soit trouvée, et bien il ne faut pas la cocher par défaut. Sinon je sais pas si j'ai déjà validé l'abscisse ou si je dois réfléchir à nouveau dessus.

Mais bon c'est un détail et je verrais si je réussi à le fixer dans la soirée avant de poster la version définitive qui va bien.

En tout cas le reste est superbe Eric ! J'ai pu tester et j'ai rien trouvé d'autre comme "erreur". Une pur merveille. Pourvu que la saisie libre fonctionne chez moi et on en restera la...


Encore une fois un grand merci à toi Eric. Bon je file, je suis curieux de voir le résultat chez moi...

A toute,

André
 

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

En fait c'était plus un problème de communication je pense.
Effectivement.
J'avais plus l'impression que tu t'adressais à un sous-fifre en lui disant c'est quoi cette merde que tu m'as faite, ce n'est pas du tout ce que j'avais demandé.
Sans dire que tu es désagréable car tu prépares bien tes demandes et ça c'est appréciable, tu n'as pas l'art et la manière parfois

lorsque qu'une seule ordonnée soit trouvée, et bien il ne faut pas la cocher par défaut
oui, j'ai oublié ce point.
J'attend si d'autres pb avant de voir

eric

edit:
je confirme que la saisie par valeurs libre ne fonctionne toujours pas
Je viens de retester sur la version postée, pour moi c'est ok quelle que soit la saisie numérique.
Même 0.xxx, par contre plus de contrôle >0 et <1, c'est ça qui empêchait le 0.xxx
 
Dernière édition:

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Vraiment dsl si tu as eu cette impression Eric. Je suis parfois maladroit dans mes propos. Pour ma part il n'y a pas de mal. Aucune mauvaise intention de mon coté donc tout vas bien.

Mais je m'excuse encore une fois alors. Car ce n'est pas agréable pour toi si tu as eu cette impression :rolleyes:

Ceci étant dit, je viens de tester le fichier sur mon pc et j'ai toujours le même problème avec la valeur libre. Absolument rien ne se passe.

J'ai vérifié la version de visual basic et c'est la même que j’utilisais au boulot ce matin(6.3). Du coup, ben pas le choix je suis en plein dans ton code pour faire ce que je peux pour que sa tourne chez moi aussi. Pas facile, mais la personne peut m'aider. C'est mon tour de bosser.
Sauf que tu commence à me connaitre, le code est pas prêt de tourner chez moi avant demain lol. Je suis trop lent.

En tout cas, je baisserais pas les bras avant d'avoir épuisé toutes mes idées. Et je ne suis qu'au début. Donc bon, faut attendre que je trouve une astuce.

Aie aie aie lol.

Je fais au plus vite pour voir si avant de me coucher si j'arrive à une conclusion. Histoire de faire un point. La j'ai pas d'avis encore.


Je me casse les dents et je reviens ici...


En tout cas c'est top si tu me dis que chez toi tu arrive à entrer une valeur d'abscisse au bon format. Bien joué.

A toute j'y retourne...

André
 

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Et si tu tapes 5, la barre rouge disparait ?
Elle doit si l'objet réagit...

Sinon tu peux saisir 0.365 ou .365, la barre rouge se positionne et 5 valeur disabled sont affichées
Je ne fais plus aucun contrôle sur le champ mais, à tout hasard, chez moi le séparateur décimal régional est le .

Met un point d'arrêt au début de TbxValeurLibre_Change et fais en pas à pas.
Si le pas à pas ne se déclenche pas c'est que l'évènement change n'est pas détecté chez toi.

eric
 
Dernière édition:

SERIEUXETCOOL

XLDnaute Occasionnel
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Me revoilà de retour...

Il était temps que je revienne^^

Bref, j'ai enfin pu régler tous les petits désagréments que je rencontrais. Je poste donc ci après la version la plus à jour du code. Je pense que cette version sera la dernière concernant ce post.

Le fichier me conviens à 99% et je vais donc admettre que c'est parfait. Mais comme je suis perfectionniste, je vais probablement ouvrir 2 petits posts supplémentaires pour traiter individuellement mes 2 demandes. Ça évitera de surcharger ce post, qui est maintenant full rempli.


Eric, j'ai bidouillé à droite à gauche un peu partout pour faire en sorte que sa me convienne bien. Si jamais tu as une remarque, ou quoi que ce soit à dire sur le nouveau code que je propose et bien je suis preneur. Mais je pense qu'il est très bien ainsi :rolleyes:

En ce qui concerne la barre rouge, elle est très bien gérée et disparait en effet lorsque que l'on tappe 5 par exemple. De toute façon j'ai résolu mon conflit, donc ça passe.

Je te remercie chaleureusement encore une fois pour toute ton aide apportée sur ce bout de code. Je ne sais pas si tu as conscience de ce que tu as fait, mais tu viens de mettre au point un code qui permet de gérer les intersections entre deux courbes qui ne sont pas tracées à partir d'équations de droites. Par défaut Excel ne gère pas cette méthode, c'est donc une importante aide que tu viens d'apporter la. J'ajouterais qu'avant de poster ma demande initiale, j'ai cherché sur le net des réponses. Et bien Internet n'aborde que très peu ce sujet. Donc à coup sur, que ce projet servira à certaines personnes par la suite.

Donc encore une fois, bien joué Eric :cool:

Ne me reste plus qu'à chipoter sur 2 détails, puis essayer de greffer tout le code dans ma macro principale...Oula j'ai encore gagné des heures de programmation on dirait bien^^

Bonne soirée le Forum.

Bien cordialement,

André

Ps : Eric, je vais probablement poster 2 petits posts...Si tu tombe dessus, passe à un autre post mdr. J'ai pas envie de te faire péter un câble^^. A bon entendeur.
 

Pièces jointes

  • MODELISATION DU PROBLEME APPROXIMATION-7.0.xls
    137.5 KB · Affichages: 54
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : Approximation d'une courbe "particulière" sous Excel par une droite affine

Tout ce que je peux dire de ta version c'est que bizarrement la valeur libre ne fonctionne pas chez moi, ni l'activation auto du formulaire...
Bonne continuation :)
eric
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 907
Membres
101 836
dernier inscrit
karmon