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.
Diagramm über Makro aktualisieren
Moderator: Moderatoren
Diagramm über Makro aktualisieren
Zuletzt geändert von MikroC am Di, 30.08.2005 12:16, insgesamt 1-mal geändert.
bei mir
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.
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
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.
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.
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
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