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 -- Gruss Bernd -- 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