Calc: Datenbereich-Erweiterung für Diagramm

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

shamrock
Beiträge: 6
Registriert: Mi, 07.09.2011 10:31

Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von shamrock »

Hallo,

ich möchte per Makro bei einem Diagramm den Datenbereich erweitern.

Beispiel/Voraussetzung:
1. zwei Spalten (1. enthält Datum, 2. enthält Werte).
2. Inhalte der Spalten sind aufgefüllt von Zeile 1 bis Zeile 10.
3. daraus wurde ein Diagramm erzeugt.

Aufgabe:
1. beide Spalten werden um weiter 5 Zeilen erweitert (manuell).
2. per Macro soll das Diagramm (Datenbereich) erweitert werden.

Habt ihr eine Idee?

Grüße
Joachim



Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: automatische Datenbereichserweiterung (Diagramm) per Mak

Beitrag von Philipp_19 »

Hallo Joachim,

Code: Alles auswählen

oDoc = ThisComponent objDiagramm = oDoc.Sheets(0).Charts.getByName("Dein_Diagramm_Name")
Weitere Eigenschaften des Diagramms erreichtst Du mit ".... .embeddedObject" das an die letzte Codezeile angehängt wird. Um das Objekt auf seine Eigenschaften und Methoden zu "untersuchen" verwende das Macro-Tool "Xray" (Downloaden). Damit suchst Du Dir die passenden Eigenschaften und Methoden aus, um Dein Diagramm per Macro zu verändern.

Damit kannst du auf ein bestehendes Diagramm zugreifen. Wie du nun die 5 zeilen mit einbeziehst, kann ich dir zu dem Zeitpunkt auch nicht sagen.

Poste das doch bitte das nächste mal im BASIC-Teil des Forums, da es hier um ein Makro geht.

Grüße
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
shamrock
Beiträge: 6
Registriert: Mi, 07.09.2011 10:31

automatische Datenbereichserweiterung (Diagramm) per Makro

Beitrag von shamrock »

hier nochmals die selbe Anfrage, nachdem ich versehentlich im falschen Bereich (Calc) gelandet war (ForumsAnfängerFehler - SORRY):

ich möchte per Makro bei einem Diagramm den Datenbereich erweitern.

Beispiel/Voraussetzung:
1. zwei Spalten (1. enthält Datum, 2. enthält Werte).
2. Inhalte der Spalten sind aufgefüllt von Zeile 1 bis Zeile 10.
3. daraus wurde ein Diagramm erzeugt.

Aufgabe:
1. beide Spalten werden um weiter 5 Zeilen erweitert (manuell).
2. per Macro soll das Diagramm (Datenbereich) erweitert werden.

In Excel habe ich das folgendermaßen gelöst:
- Sheets("MeineSeite").Select
- ActiveChart.PlotArea.Select
- ActiveChart.SeriesCollection(1).XValues = "='MeinDiagramm'!B" & VonZeile & "A1:B" & BisZeile & "A1"

Hat jemand eine CodeSchnippsel, der dem Excel-Auszug entspricht?
Danke.



Moderation,4: erneutes Post mit erster Anfrage zusammengeführt
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: automatische Datenbereichserweiterung (Diagramm) per Mak

Beitrag von Philipp_19 »

Hallo nochmal :)

http://www.starbasicfaq.de/Zellen.html#Zweig162
Ich denke das sollte dir weiterhelfen. Wenn du mit VBA bereits Makros geschrieben hast, wird dir der Umstieg auf OOo-Basic nicht allzu schwer fallen.

-Zugriff auf das Arbeitsblatt

Code: Alles auswählen

myDoc = thisComponent
mySheet = myDoc.Sheets().getByName("Tabelle2")
zugriff auf die zellen ist dem relativ ähnlich:

Code: Alles auswählen

myCell = mySheet.GetCellRangeByName("A1:A4")
So, wie du auf das Diagramm zugreifst findest du ja im anderen Thread.
Zugriff auf das Diagramm hast du im anderen Thread erfahren.
Wie du das ganze dann ins Diagramm bekommst, kann ich dir, wie bereits gesagt, nicht erklären. Aber bisher hat man für alles Lösungen gefunden ;-)

Hoffe das hilft erstmal
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: automatische Datenbereichserweiterung (Diagramm) per Mak

Beitrag von balu »

Hallo shamrock,

Betriebssystem?
OOo oder LO, und die Versionsnummer?

Warum wilst Du unbedingt per Makro den Datenbereich für das Diagramm nachträglich ändern? Reicht es denn nicht den Datenbereich gleich von vornherein groß genug zu dimensonieren?

Um was für ein Diagramm handelt es sich denn?

Nur um ganz sicher zu sein, ist es ein Diagramm in Calc?


Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: automatische Datenbereichserweiterung (Diagramm) per Mak

Beitrag von Philipp_19 »

Er hatte das Problem bereits im Calc-Unterforum angesprochen. Habe ihn dann hierhin verwiesen.
Aber stimmt balu, warum das ganze mit einem Makro machen?

Reicht es nicht, das Diagramm neu aufzubauen bzw. die neuen Zellen mit einzubieziehen?
Grade nachgeguckt: Rechtsklick auf das Diagramm, Datenbereich neu einstellen und gut ist. Hm, vielleicht sollte ich immer erst die einfachere Lösung suchen :D

Grüße
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von komma4 »

Das Problem ist, dass es meist mit dem einfachen Setzen eines neuen Datenbereichs per Makro nicht getan ist: diverse Einstellungen zum Diagramm gehen u.U. verloren.

Wenn der OP es trotzdem versuchen will:

Code: Alles auswählen

' Zell-Bereich erzeugen 
oBereich = createUnoStruct( "com.sun.star.table.CellRangeAddress" )

' Zell-Bereich setzen
' Spalten B und C um weitere Zeilen erweitern
With oBereich
 .Sheet = 0
 .StartColumn = 1
 .StartRow = 0
 .EndColumn = 2
 .EndRow = 14
End With

  
' erweiterten Bereich auf das Diagramm anwenden   
oDiagramm.setRanges( Array( oBereich ) )
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
shamrock
Beiträge: 6
Registriert: Mi, 07.09.2011 10:31

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von shamrock »

Erklärung für Macro anhand eines Beispiels:

Wenn ihr zuhause täglich eueren Stromzähler ablesen möchtet und den Stromverbrauch in einem Diagramm darstellen möchtet, so müßtet ihr jedesmal (ev. auch mehrmals täglich) das Diagramm um den Bereich erweitern, der dazu gekommen ist. Also nichts einmaliges!
Ich mache das mit meiner Wärmepumpe, um den Strombedarf im Blick zu haben. Hierbei habe ich auch mehrere Diagramme, die alle auf die abgelesene DatenTabelle zugreifen und jedesmal zu ändern sind, um den Energieverbrauch graphisch darstellen zu können.
Die Diagramme händisch anzupacken und zu ändern, ist mir zu umständich!
Da ich "von Amts wegen" viele scripte, verbietet das mein Stand ;-)

Ich habe das seither (wie oben erwähnt) mit Excel/VBA erledigt.
Da ich mir einen neues Notebook genehmigt habe und ich in diesem Rahmen auf OO umsteigen möchte, müßte ich das lösen.
Und irgendwie komme ich mit den OO-Scripten noch nicht so ganz zurecht, deshalb meine Anfrage.

Also den Beitrag doch wieder in BASIC?

OS: Win7
OO: 3.3.0

Grüße und wartend auf euere Lösungsvorschläge ...
Joachim
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von Philipp_19 »

Hallo,

das heißt, immer wenn ein neuer Eintrag hinzukommt, müsste das Makro greifen und das Diagramm ändern.
Wenn du uns vielleicht mitteilst, wo du Probleme mit OO-Basic hast, könnte man dir besser weiterhelfen.

Ich denke mir, das du Probleme mit dem Diagramm selber hast. Also das sich der Bereich vergrößert. Lieg ich da richtig?
Weil das allgemeine drumherum, Tabelle und Zellen ansprechen hab ich dir oben bereits gezeigt und sollte mit VBA-Vorkenntnissen gut umsetzbar sein.

Ansonsten lad dir die Dokus von
-Andrew Pitonyak runter. Die gibt es auf http://www.uni-due.de/~abi070/ (glaub ich) zu großen Teilen schon auf deutsch.
-http://www.starbasicfaq.de/
Das sind so die beiden Dokus an denen ich mich orientiere. Da solltest du eigentlich das meiste lernen können.

Grüße
Zuletzt geändert von Philipp_19 am Mi, 07.09.2011 12:44, insgesamt 1-mal geändert.
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von balu »

Hallo Joachim,
balu hat geschrieben: Um was für ein Diagramm handelt es sich denn?

Nur um ganz sicher zu sein, ist es ein Diagramm in Calc?
Warum beantwortest Du diese Fragen nicht?
Was ich außerdem noch gerne wissen möchte, wie groß waren denn bis jetzt die Datenbereiche die Du so schon im laufe der Zeit gesammelt hattest?



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von Philipp_19 »

shamrock hat geschrieben:Ich habe das seither (wie oben erwähnt) mit Excel/VBA erledigt.
Sollte deine Frage zu 50% beantworten balu oder?
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
shamrock
Beiträge: 6
Registriert: Mi, 07.09.2011 10:31

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von shamrock »

das heißt, immer wenn ein neuer Eintrag hinzukommt, müsste das Makro greifen und das Diagramm ändern.
Ja, ich habe mir dazu in das ExelSheet (da, wo ich die EIngaben mache) eine Knopf gelegt. Dahinter verbirgt sich das VBA.
Beim Drücken des Knopfes frage ich nach der "letzten" Zeile der Eingabe, dann legt das Macro los und zieht die Diagramme nach.
Ich denke mir, das du Probleme mit dem Diagramm selber hast. Also das sich der Bereich vergrößert. Lieg ich da richtig?
Genau, an die Tabelle/Cellen komm ich ran.
Nur krieg ich die ausgelesenen Werte nicht an das Diagramm hin (kenn einfach die Syntax nicht).

Hat das denn noch keiner gemacht?
Denn dann gäbe es doch oben angefragte CodeSchnippsel.

Ich bin von Haus aus kein Windows/Office-Fan (leider bin ich durch mein Arbeitsgebiet dazu gezwungen), aber wenn ich in Google entspr. suche, habe ich gleich mehrere Treffer.
Das selbe mit OO hat mich nun schon Stunden gekostet und ich hab immer noch keine Ansatz - vielleicht bin ich schon OfficeBlind ... ???

@balu
Es sind Diagramme in Calc.
In der Zwischzeit haben sich ca. 2500 Zeilen angehäuft - aber das sollte doch nicht das eigentlcihe Problem sein, oder?


Kramt doch mal in eurem Fundus ...
Grüße
Joachim
Philipp_19
****
Beiträge: 115
Registriert: Mo, 29.08.2011 09:01
Wohnort: Duisburg

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von Philipp_19 »

Hey,

vielleicht hilft das auch schonmal:
viewtopic.php?t=11097

Wahlweise mal den Macrorecorder ankurbeln, schaun was der dir für Code-Schnipsel ausspuckt.
Windows XP, OOo 3.3.0
oder
Windows 7, OOo 3.3.0
shamrock
Beiträge: 6
Registriert: Mi, 07.09.2011 10:31

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von shamrock »

Wahlweise mal den Macrorecorder ankurbeln, schaun was der dir für Code-Schnipsel ausspuckt.
Das hatte ich schon gestern versucht, aber wenn ich (nachdem ich "Makro aufzeichnen" angeklickt habe) dann das Diagramm per Doppelklick aktiviere um den Datenbereich zu ändern, verschwindet der Knopf "Aufzeichnung beenden".
Der Knopf ist so lange weg, bis ich irgendwo in den Sheet-Bereich klicke.
Dann kann ich "Aufzeichnen beenden" drücken, aber es gibt kein Macro.

Was mach ich falsch?
Denn das wäre der eleganteste Weg.

Grüße
Joachim
shamrock
Beiträge: 6
Registriert: Mi, 07.09.2011 10:31

Re: Calc: Datenbereich-Erweiterung für Diagramm

Beitrag von shamrock »

vielleicht hilft das auch schonmal:
viewtopic.php?t=11097
Da scheint aber auch nichts sinnvolles raus gekommen zu sein - oder ich verstehs nicht?!


Frage/Bitte:
da ich mich mit dieser Sache unendlich schwer tu, wäre es nicht möglich (für die Fraktion der OO-Spezialisten) ein Sheet mit zwei Spalten mit Inhalt zu erstellen, daraus ein einfaches Diagramm zu generieren, um dann per Macro die Datenbereiche des Diagramms zu manipulieren.
Ich kriegs einfach nicht hin - oder geht es grundsätzlich nicht?

Danke schon vorab - Joachim
Antworten