Diagramm über Makro aktualisieren

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

MikroC
Beiträge: 3
Registriert: Fr, 26.08.2005 14:57

Diagramm über Makro aktualisieren

Beitrag von MikroC »

Ich möchte neue Werte einer Tabelle automatisch über ein Makro in ein Diagramm übernehmen. Bisher habe ich leider nichts darüber gefunden und das Programmiergenie bin ich leider auch noch nicht.
Ich bin euch für jede Hilfe dankbar.
Zuletzt geändert von MikroC am Di, 30.08.2005 12:16, insgesamt 1-mal geändert.
Emmess
Beiträge: 6
Registriert: So, 28.08.2005 01:28

bei mir

Beitrag von Emmess »

funzt es so, daß ich beim Ergänzen einer Tabelle die Grafik sofort geändert sehe.

Womöglich hat das damit zu tun, daß die Tabellendaten auf einem anderen Blatt stehen, nicht auf demselben, und beim "Umblättern" die Grafik sich aktualisiert? Probiers mal aus.
Religion ist heilbar
MikroC
Beiträge: 3
Registriert: Fr, 26.08.2005 14:57

Beitrag von MikroC »

Danke Emmess, aber leider geht's nicht.

Tabelle undd Diagramm liegen auf einem Blatt.
Das Problem, was ich habe ist, dass beim Erstellen des Diagramms ein Datenbereich festgelegt wird (der mag ausreichend groß sein), steht aber in einer Zelle nichts drin, wird der Datenbereich automatisch bis zur letzten Zelle mit Daten gekürzt. Erfolgt jetzt ein Eintrag in der letzten freien Zelle, werden die Daten nicht in das Diagramm übernommen. Ich muss also per Hand den Datenbereich wieder vergrößern. Das möchte ich gern vermeiden und suche nach einer Möglichkeit, den Datenbereich dynamisch an den Zellinhalt anzupassen.
MikroC
Beiträge: 3
Registriert: Fr, 26.08.2005 14:57

Beitrag von MikroC »

Habe 'ne Lösung gefunden:

sub chart002

'letzte datenfreie Zeile bestimmen (auch aus diesem Forum)------
Doc = StarDesktop.CurrentComponent
oSheet = Doc.Sheets(0)
oCellCursor = oSheet.createCursor()
oCellCursor.GotoEndOfUsedArea(True)
letzte_Zeile = oCellCursor.getRangeAddress.EndRow

rem Code über "Makro aufnehmen" erzeugt
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:StarChartDataDialog", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(3) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Name"
args2(0).Value = "Object 4"
args2(1).Name = "Range"
args2(1).Value = "$Tabelle1.$A$1:$A$" & letzte_Zeile+1 'Datenbereich wird erweitert
args2(2).Name = "ColHeaders"
args2(2).Value = false
args2(3).Name = "RowHeaders"
args2(3).Value = false

dispatcher.executeDispatch(document, ".uno:ChangeChartData", "", 0, args2())

end sub

-----------------


Dieses Makro dem Ereignis "Dokument sichern" zuordnen (oder wie man will). Schade das es kein Ereignis "update Zelle" gibt oder ich es bisher nicht gefunden habe.


----------------
MikroC
Antworten