Hallo Bernd,
ich habe es mal ganz naiv anders probiert, ich greife auf das
Shape-Objekt zu, das das Diagramm enthält:
ChartShape=oDoc.Drawpages(0).getByIndex(0) 'mein Test hat ja nur eine
Drawpage und ein Diagramm
' der Rest ist von dir, abgesehen von der Variablen
ChartShape:
size=ChartShape.getSize()
msgbox size.width 'ist immer 31286
size.Width=40000 'Damit eine Veränderung sichtbar würde
ChartShape.Size=size
Dann ändert sich das Shape und automatisch auch das Diagramm.
Gruß
Gerhard
Am 28.01.2021 um 13:45 schrieb Bernd Obermayr:
Hallo,
ich versuche per makro die Grösse von Diagrammen (Charts) zu verändern.
Das gelingt nur teilweise.
Der Code funktioniert nicht:
Der Versuch die Grösse der Diagramme zu ändern
size=ChartDoc.Drawpage.getByIndex(0).getSize()
msgbox size.width 'ist immer 31286
size.Width=40000 'Damit eine Veränderung sichtbar würde
ChartDoc.Drawpage.getByIndex(0).Size=size
size=ChartDoc.Drawpage.getByIndex(0).getSize()
msgbox size.width 'Zeigt die Änderung an.
'Aber es wird
nicht wirklich geändert
Greife ich evtl. auf das falsche Object zu? Ich verstehs nicht :(
Was funktioniertist dieser Code:
ChartDoc.Diagram.XAxis.Min=DateValue(DateStr) '09.11.2020
ChartDoc.Diagram.XAxis.NumberFormat=131 'TT.MM
Die komplette Routine:
----8<-----
public Sub SetChartXAxisMinDate()
'** Das Startdatum der Skala setzen
'** Wird von den Ereignissen "Text geändert" und "Nach Aktualisierung" des
'** Controls "ChartXAxisMinDate" (Tab Diagramme, Datumsfeld rechts Oben)
getriggert
dim ChartDoc
Dim Charts As Object
Dim Chart as Object
Dim oSheet
Dim oForm
Dim i%
Dim aDate
Dim DateStr$
Dim size
Dim Cell
Dim debug$
Dim cRg
Dim j%
cRg=createUnoStruct("com.sun.star.table.CellRangeAddress")
size=createUnoStruct("com.sun.star.awt.Size")
oSheet=Thiscomponent.sheets.getByName("Diagramme")
oForm=oSheet.Drawpage.Forms.getByName("Formular")
Cell=oSheet.getCellRangeByName("N7")
aDate = createUnoStruct("com.sun.star.util.Date") 'Holen des Datums
geht nur mit der struct
aDate=oForm.getByName("ChartXAxisMinDate").Date ' .Text ist nicht
immer aktuell??
'DateStr=aDate.Day & "." & aDate.Month & "." & aDate.Year
DateStr = ConvertDateTime(aDate, "STRING") '''' --> mytools.modDate
Cell.String=Datestr
'Mri oSheet.Charts.getByIndex(0)
For i=0 To oSheet.Charts.count-1
Chart = oSheet.Charts.getByIndex(i)
ChartDoc = Chart.getEmbeddedObject()
if i=0 then 'Für den Test. Nur das 1. Diagramm
'''' Geht nicht. Zerstört das Diagramm!
'' Der Versuch die Ranges der Diagramme zu verändern
' cRg=Chart.getRanges()
' For j=1 To ubound(cRg)
'
' If cRg(j).EndRow <> 550 then
' cRg(j).EndRow=550
' debug=debug & "Cart(" & i & ") Range(" & j & ")"
& chr(10)
' End if
' Next j
' Chart.setRanges(cRg)
'msgbox ChartDoc.Diagram.XAxis.NumberFormat
'''' Geht nicht
'' Der Versuch die Grösse der Diagramme zu ändern
size=ChartDoc.Drawpage.getByIndex(0).getSize()
msgbox size.width 'ist immer 31286
size.Width=40000 'Damit eine Veränderung sichtbar würde
ChartDoc.Drawpage.getByIndex(0).Size=size
size=ChartDoc.Drawpage.getByIndex(0).getSize()
msgbox size.width 'Zeigt die Änderung an. Aber es wird
nicht wirklich
geändert
End If
ChartDoc.Diagram.XAxis.Min=DateValue(DateStr) '09.11.2020
'ChartDoc.Diagram.XAxis.NumberFormat=141 'NN TT.MM
ChartDoc.Diagram.XAxis.NumberFormat=131 'TT.MM
Next i
'mri Chart
End Sub
--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy