Seite 1 von 1

[gelöst] Diagramm per Makro erzeugen

Verfasst: Sa 20. Jan 2018, 20:24
von wega
Hallo zusammen,

das Thema Diagramm per Makro ist weitgehndst erschöpft,
dennoch tauchen immer wieder Fragen auf.

Im nachstehenden Makro (zu finden hier im Forum und in
diversen Veröffentlichungen) wird der Wertebereich der
X-Achse immer von der Spalte "0" also "A" beschrieben.

Code: Alles auswählen

Sub BildeDiagramm (Zeile)
Dim Doc As Object
Dim Charts As Object
Dim Chart as Object
Dim Rect As New com.sun.star.awt.Rectangle
Dim RangeAddress(0) As New com.sun.star.table.CellRangeAddress

Rect.X = 8000
Rect.Y = 1000
Rect.Width = 10000*1.5
Rect.Height = 7000*1.5
RangeAddress(0).Sheet = 0
RangeAddress(0).StartColumn = 0 
RangeAddress(0).StartRow = 2
RangeAddress(0).EndColumn = 2
RangeAddress(0).EndRow = Zeile

Doc = ThisComponent
Charts = Doc.Sheets(0).Charts

Charts.addNewByName("MyChart", Rect, RangeAddress(), True, True)
Chart = Charts.getByName("MyChart").EmbeddedObject
Chart.HasMainTitle = True
Chart.Title.String = "Wasserraketensimulation"
Chart.HasSubTitle = True
Chart.Subtitle.String = "Geschwindigkeit und Steighöhe über Zeit"
Chart.Diagram.HasXAxisTitle = true
Chart.Diagram.XAxisTitle.String = "Zeitachse"
Chart.HasLegend = True 
Chart.Legend.Alignment = com.sun.star.chart.ChartLegendPosition.BOTTOM
Chart.Legend.FillStyle = com.sun.star.drawing.FillStyle.SOLID
Chart.Legend.FillColor = RGB(210, 210, 210)
Chart.Legend.CharHeight = 7

Chart = Charts.getByName("MyChart").embeddedObject
Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram")

End sub
In meinem Fall liegen die Werte für die X-Achse aber in der Spalte "D"
Diagramm-01.jpg
Diagramm-01.jpg (101 KiB) 2641 mal betrachtet
Und die werden mit dem Makro natürlich nicht übertragen.

Meine Frage: was muß ich am Makro ändern, damit ich den Wertebereich
der Spalte "D" auf der X-Achse abbilden kann?

Mit Gruß
Werner

Re: Diagramm per Makro erzeugen

Verfasst: So 21. Jan 2018, 17:17
von F3K Total
Hi,
wega hat geschrieben:
Sa 20. Jan 2018, 20:24
was muß ich am Makro ändern, damit ich den Wertebereich
der Spalte "D" auf der X-Achse abbilden kann?
Das ist ein komplizierteres Unterfangen, da in einem XY-Diagramm, du hast ja ein Liniendiegramm verwendet, die X-Achse standardmäßig in der ersten Spalte des Datenbereiches steht.
Ich empfehle dir daher, die ZEIT in Spalte A zu verschieben, und dann die Zeile

Code: Alles auswählen

Chart.Diagram = Chart.createInstance("com.sun.star.chart.LineDiagram")
in

Code: Alles auswählen

Chart.Diagram = Chart.createInstance("com.sun.star.chart.XYDiagram")
zu ändern. Das ist der geringste Aufwand.
HTH Gruß R

Re: Diagramm per Makro erzeugen

Verfasst: So 21. Jan 2018, 17:50
von wega
Hallo,

danke für Deine Antwort und den Hinweis.
Ich war schon der Verzweiflung nahe.

Gruß
Werner