BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Diagramm per Makro erzeugen

Alles zur Programmierung im LibreOffice.
Antworten
wega
Beiträge: 121
Registriert: Mi 16. Jul 2014, 19:15

[gelöst] Diagramm per Makro erzeugen

Beitrag von wega » Sa 20. Jan 2018, 20:24

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) 2232 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
Zuletzt geändert von wega am So 21. Jan 2018, 17:51, insgesamt 1-mal geändert.

F3K Total
Beiträge: 2409
Registriert: So 10. Apr 2011, 10:10

Re: Diagramm per Makro erzeugen

Beitrag von F3K Total » So 21. Jan 2018, 17:17

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
Windows 10: AOO, LO Linux Mint: AOO, LO

wega
Beiträge: 121
Registriert: Mi 16. Jul 2014, 19:15

Re: Diagramm per Makro erzeugen

Beitrag von wega » So 21. Jan 2018, 17:50

Hallo,

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

Gruß
Werner

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten