IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] barre verticale dans un graphique


Sujet :

Macros et VBA Excel

  1. #1
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut [VBA-E] barre verticale dans un graphique
    Bonjours à tous

    J'ai un problème je voudrais créer une barre verticale sur un graphique et j'y arrive pas

    Prenons les valeurs suivante
    en colonne A :
    1
    2
    3
    4
    5
    6

    en colonne B:
    0,4
    1,4
    2,7
    3,8
    5,1
    6,4

    et au moment ou il y a intersection des deux courbes il faut barre verticale.
    Peut importe si il faut le faire en VBA ou pas mais il me faut cette barre (désir du client).
    Et j'y arrive pas

    Si quelqu'un peu m'aider SVP merci

    Igloobel
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    ou trouve yu tes valeurs de X. Parce que sans elles c'est un peu plus dur

  3. #3
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Merci de répondre bidou
    En fait, une fois par semaine je récolte un chiffre j'ai donc en colonne C :
    07/12/2005
    14/12/2005
    28/12/2005
    04/01/2006
    11/01/2006
    18/01/2006

    Et ce sont ces valeurs qui sont en abscisse de mon graphique

    Merci si tu peux résoudre mon problème

    Igloobel
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Le résoudre n'est pas un problème, c'est fondamentalement un calcul d'intersection linéaire.
    - Donc on recherche quand change le signe de la différence des ordonnées
    - On calcul l'équation des deux segments de droite ou a lieu l'intersection
    - On sait alors qu'à l'intersection on aura a1x+b1=a2x+b2
    - On trouve x
    - On défini une nouvelle série de deux points ayant chacun pour abscisses la valeur trouvée et pour ordonnée respectivement la valeur basse de l'echelle y et la valeur haute

    Y a plus qu'à savoir qui va être le "On"

  5. #5
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Trouver le segment de droite ou il y a l'intersection ça c'est pas trop dur
    récuperer le premier couple de chiffre (4; 3,8 ) puis le deuxième couple (5; 5.1) ça OK.

    c'est le après qui me gène

    tu dis
    On calcul l'équation des deux segments de droite ou a lieu l'intersection
    Je ne veux pas te vexer mais l'école est un peu loin pour moi et calculer l'équation d'un segment de droite je sais plus le faire à partir des points que j'ai.

    Igloobel
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  6. #6
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    sous forme Excel et dans ton exemple, on pourrait écrire l'équation de x telle que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(ORDONNEE.ORIGINE($C$4:$C$5;$A$4:$A$5)-ORDONNEE.ORIGINE($B$4:$B$5;$A$4:$A$5))/(PENTE($B$4:$B$5;$A$4:$A$5)-PENTE($C$4:$C$5;$A$4:$A$5))
    soit dans ton cas 38725,66667 autrement dit le 8 janvier 2006 à 16 h.

  7. #7
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par bidou
    Y a plus qu'à savoir qui va être le "On"
    ca me semble bien partit pour que ce soit toi
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  8. #8
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Citation Envoyé par Thierry AIM
    Citation Envoyé par bidou
    Y a plus qu'à savoir qui va être le "On"
    ca me semble bien partit pour que ce soit toi
    J'avais comme un pressentiment

  9. #9
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Les "on", il y en a....
    Mais je n'enseignerai pas l'algèbre sur ce forum.

  10. #10
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjours à tous,

    Merci Bidou. Je viens d'installer ta formule miracle tout d'abord je n'avais jamais entendu des trucs du genre :
    - PENTE
    - ORDONNEE.ORIGINE
    du coup j'ai fais et là j'ai vu des trucs qui m'ont fais dressé les cheveux sur la tête des formules (oulà ça calme dès le matin)
    Je ne m'y attendais pas en posant ma simple question !

    Une fois installée, donc, ta fomule ne me donne pas du tout ton chiffre j'ai (-6788.49122807019) au lieu de 38725,66667 (pourtant j'ai fais un copié collé)

    jmfmarques à dit :
    Comme l'a dit différemment un chinois, il vaut mieux enseigner la pêche plutôt que de donner un poisson
    Or là le gars dans l'histoire (bibi) il a besoin de la canne à pêche pour pecher parce qu'à main nu il n'y arrive pas ... le gars.
    Et il sait pas faire la canne à pêche ...

    Je demmande donc humblement au personnes qui savent comment faire ma canne à pêche (ici ma droite verticale)

    Merci à tous de l'aide que vous m'apportez.

    Igloobel
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  11. #11
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    c'est parce que dans mon classeur les dates sont en colonnes A
    Dans ton cas c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(ORDONNEE.ORIGINE($A$4:$A$5;$C$4:$C$5)-ORDONNEE.ORIGINE($B$4:$B$5;$C$4:$C$5))/(PENTE($B$4:$B$5;$C$4:$C$5)-PENTE($A$4:$A$5;$C$4:$C$5))
    J'utilises les fonctions Excel pente et ordonnee.origine par fainéantise, mais je pourrais faire a=y1-y0/x1-x0 et b=y-ax

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    L'intersection de 2 droites se calcule par la résolution d'un système de 2 équations du type y = ax + b
    C'est tout et c'est tout ce que j'en dirai ici.
    Pour le reste : avant d'aller à la pêche, il faut se poser la question de savoir si l'on a envie de pêcher.
    Pour ce qui est de l'application, à ce cas précis, du proverbe chinois évoqué, donner la solution, c'est donner le poisson. Apprendre à pêcher, c'est enseigner l'algèbre (et ce n'est pas le bon forum).

  13. #13
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour à tous,

    Cela va faire bientôt une semaine que je cherche et j'y arrive toujours pas à faire ma barre verticale

    Je remercie Bidou pour son aide précieurse pour le calcul de mon point d'intersection

    J'ai dessiner une barre verticale à la main pour palier mon problème, mais bon c'est vraiement pas élégant et si mes valeurs changent ... bref c'est vraiement pas beau

    Si quelqu'un veux bien m'aider ... siouplais merci

    Igloobel
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  14. #14
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Sans aucun doute : je serai la mais, d'abord :
    comment as tu posé tes 2 équations du 1er degré à l'aide de X1, Y1, X2 et y2 ?
    Montre-nous ces 2 équations .

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Salut Igloobel,
    Juste une idée, puisque tu n'as pas de solution.
    Tu peux déplacer tes deux axes sur la valeur du point d'intersection... enfin, pas tout à fait
    Pas de problème pour l'axe des x, qui accepte un déplacement en ordonnée, en valeurs décimales, mais big problème avec l'axe des y qui n'accepte que les entiers.
    Donc, il te resterait à trouver une bonne raison pour que ton client considère comme toi qu'un trait horizontal est bien mieux qu'un trait vertical...
    J'ai fait ça mais je pense que tu n'as pas besoin de moi pour le code re

    A+

  16. #16
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Pour Iglobel :
    une droite est ube courbe résultant d'une équation du type Y = ax + b
    Tu connais Les coordonnées de 2 points de chacune de tes 2 droites
    Ces coordonnées, que nous appellerons par exemple x1,y1 et x2,y2 te permettent d'écrire, en chacun des 2 points, la correspondance :
    y1 = ax1 + b
    y2 = ax2 + b
    où tu dois déterminer a et b puisque, par définition, tu connais x1, y1, x2 et y2
    procèdes pour celà par soustraction, de la même manière que celle exposée plus bas
    imaginons que tu trouves par exemple, a = 10 et b = 3, l'équation de ta droite sera y = 10x + 3
    En faisant la même chose avec l'autre droite (même méthode) tu trouvera un a et un b (imaginons que, pour l'autre droite, a = 8 et b = 30).
    l'équation de ta 2ème droite sera y = 8x + 30
    il ne te restera plus, pour déterminer les coordonnées du point d'intersection qu'a résoudre le système de 2 équations du 1er degré :

    y = 10x + 3
    y = 8x + 30

    si tu soustrais l'une de l'autre, tu obtiendras 0 =2x - 27, ce qui te conduit à : x = 27/2
    en ramenant cette valeur à l'une quelconque des 2 équations (à la place de x), tu en déduiras la valeur de y (138)
    Dans cet exemple : l'abscisse et l'ordonnée du point d'intersection seront donc 13,5 et 138
    Voilà la façon la plus simple de t'expliquer cela.
    Tu en as une autre exposée (algèbre) sur ce lien :
    http://www.mathsgeo.net/rep/edroite.html
    A toi de jouer maintenant, en considérant que l'abscisse 0 est le bord gauche de ta feuille et que l'ordonnée 0 est le bord inférieur de ta feuille (tu prends donc comme axes les bords gauche et bas de ta feuille)
    Le reste n'est que calcul à mettre en syntaxe.

    EDIT :
    et voilà un second site qui t'aidera à mettre tout celà en syntaxe :
    http://perso.ensad.fr/ari/davidov/prog/encarts/droite.htm#coeff

    Il est fait appel ici à des notions d'algèbre qui m'ont été inculquées en 5ème pour ce qui est de la résolution de 2 équations connues du 1er degré et en 3ème pour ce qui est de la détermination de l'équation d'une droite.
    Je note qu'on enseigne aujourd'hui cela en 2ème et en reste baba.

    EDIT : en relisant tout depuis le début, je me demande si tu ne devrais pas tenter également de traiter avant même ton graphique, par la méthode dite d'intersection des valeurs... (encore autre chose...)
    RE EDIT : si tu t'orientes vers vette dernière méthode, il faudrait faire, sur google des recherches sur Frasnay (je ne me rappelle plus son prénom... je crois que c'est ou ... c'était... Claude). Recherches aussi avec les mot Analytique, déterminant, matrice, associés à Frasnay
    RE RE EDIT : je suggère que l'on efface ce long message dès que le demandeur en aura pris connaissance car il n'apporte rien en développement sous VB et n'a qu'un caractère mathématique

Discussions similaires

  1. [XL-2010] Comment positionner une barre verticale sur un graphique
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/09/2012, 21h24
  2. Pas de barre verticale dans un JScrollPane
    Par SAKDOSS dans le forum Composants
    Réponses: 3
    Dernier message: 08/12/2011, 22h45
  3. barre verticale dans une JFrame
    Par thierry_b dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 09/07/2009, 16h40
  4. Ajouter une ligne verticale dans un graphique
    Par slayer23 dans le forum MATLAB
    Réponses: 18
    Dernier message: 17/07/2007, 09h01
  5. Comment tracer une ligne verticale dans un graphique
    Par developpeur82 dans le forum MATLAB
    Réponses: 3
    Dernier message: 03/04/2007, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo