Hallo Jürgen,
in den letzten Tagen habe ich mein Dokument so hingefummelt, wie es mir am praktischsten erscheint.
Bis auf eine Sache bin ich zufrieden.
Ich würde gerne dieses Makro,
Code: Alles auswählen
sub Zeit_max_schreiben
Dim oDoc as Object, oSheet as Object
oDoc = StarDesktop.CurrentComponent
myDoc = thisComponent
mySheet = myDoc.Sheets().getByName("Diagramm")
readTime = mySheet.getCellByPosition(7,1).value ' größte Länge der x-Achse
mycell = mySheet.getCellByPosition(8,0) ' Zelle I1
mycell.value=readTime
end sub
unter folgender Bedingung aufrufen: einmal, beim Aufruf eines anderen sheets
Dem steht aber der Listener entgegen, der ja den Bereich I1:J1 überwacht - ich habe ich es erst so gelöst (einfach das Makro aufgerufen - siehe REM):
Code: Alles auswählen
Sub Cell_chartDataChanged
oSheet = ThisComponent.sheets.getByIndex(0)
oSheetx = ThisComponent.sheets.getByIndex(1)
TimeCell = oSheet.getCellByPosition(8,0).value
oChart = oSheet.Charts.getByIndex(0)
mycell = osheet.getCellByPosition(7,0).value
myvalue = mycell
Dim oNewRange as new com.sun.star.table.CellRangeAddress
oNewRange.StartColumn = 0
oNewRange.EndColumn = 3
oNewRange.StartRow = 0
oNewRange.EndRow = TimeCell
oNewRange.sheet = 1
oChart.Ranges = Array(oNewRange)
REM Zeit_max_schreiben
End Sub
Es funktioniert zwar, aber es scheint, daß das Diagramm immerwieder neu aufgebaut wird - zumindest blickt die Statusleiste dauernd.
Jetzt habe ich mir das Makro erstmal auf einen Button gelegt.
gruß
sven-my