Toon posts:

[VBA] Horizontale lijn op grafiek

Pagina: 1
Acties:
  • 222 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi iedereen,

ik heb me ondertussen al suf gezocht op google en http://msdn.microsoft.com/ om te weten hoe ik dit zou kunnen doen.
Ik heb allerlei trefwoorden ingevuld: horizontal line visual basic, scale line, addline...
Echter niets gaf een relevant antwoord op mijn vraag.

Mijn vraag is de volgende: hoe kan ik op een 'grafiek' in excel via een macrootje in visual basic een horizontale lijn laten tekenen? De positie van de lijn is afhankelijk van de waarden die gebruikt worden in de grafiek en van de schaalverdeling...

Ik heb een screenshotje genomen van wat ik zou willen hebben:
hier

Wat ik dus zoek is hoe ik die oranje lijn automatisch getekend zou kunnen krijgen.

Dacht eerst
code:
1
ActiveChart.Shapes.AddLine(280.12, ondergrens, 363.95, ondergrens).Select

te gebruiken, maar de waarden die je hier moet invullen (280.12 en zo) zijn 'schermafmetingen'.
Ik wil een lijn invoegen met 'grafiekafmetingen'.

Iemand een idee?
Alvast bedankt

PS de bedoeling van dit alles is om de 'snorren' van een boxplot te tekenen, als iemand weet hoe je dit doet...

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Mbv plotarea en axis eigenschappen kun je natuurlijk een waarde zelf omrekenen naar een grafiekpositie. Bv voor de ywaarde:
Visual Basic:
1
YSCHERM = c.PlotArea.InsideTop + c.PlotArea.InsideHeight * ((c.Axes(xlValue).MaximumScale - YWAARDE) / (c.Axes(xlValue).MaximumScale - c.Axes(xlValue).MinimumScale))

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Ik snap niet precies wat je bedoeld, maar ik heb het volgende geprobeerd en dit is dus niet gelukt
code:
1
2
3
Dim YSCHERM As Double
YSCHERM = c.PlotArea.InsideTop + c.PlotArea.InsideHeight * ((c.Axes(xlValue).MaximumScale - 0.699) / (c.Axes(xlValue).MaximumScale - c.Axes(xlValue).MinimumScale))
ActiveChart.Shapes.AddLine(280.12, YSCHERM, 363.95, YSCHERM).Select


0,699 is de ywaarde van het punt waar deze horizontale door zou moeten.

Weet iemand een oplossing?

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Je moet c natuurlijk wel ergens een waarde geven met ' dim c as chart: set c=activechart' o.i.d. en dat select is ook nergens goed voor.

offtopic:
Lees je mijn bericht in je eerste topic en de reacties van anderen in je andere topics nog eens door? Het is niet mijn/de bedoeling om alles letterlijk voor te kauwen; dan gaat de lol er namelijk snel af ;). Wat ik hier bv mis is de foutmelding die je ongetwijfeld hebt gekregen en wat je zélf hebt bedacht nav daarvan. Dat maakt i.h.a. dat topics wat plezieriger lopen

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Niesje schreef op zaterdag 17 december 2005 @ 22:12:
Je moet c natuurlijk wel ergens een waarde geven met ' dim c as chart: set c=activechart' o.i.d. en dat select is ook nergens goed voor.

offtopic:
Lees je mijn bericht in je eerste topic en de reacties van anderen in je andere topics nog eens door? Het is niet mijn/de bedoeling om alles letterlijk voor te kauwen; dan gaat de lol er namelijk snel af ;). Wat ik hier bv mis is de foutmelding die je ongetwijfeld hebt gekregen en wat je zélf hebt bedacht nav daarvan. Dat maakt i.h.a. dat topics wat plezieriger lopen
Sorry maar ik ben nog maar net nieuw, ik heb de FAQ gelezen hoor, maar ja.

Alvast grote dank. Mijn probleem is opgelost!