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

Antwort per Email an