Seite 1 von 3

"Dynamische" Data Ranges in Diagramm

Verfasst: Mi, 29.04.2009 17:54
von skaface
Hallo zusammen,

ich würde gerne ein Diagramm erstellen, bei dem die DataRanges zum teil dynamisch festgelegt werden.

Am besten zu zeigen über ein kleines Bsp.:

Bild

Ich würde jetzt gerne über die Zelle F2 (also im Bild der Wert "21") festlegen, wie viele Zeilen im Diagramm angezeigt werden.
Wenn in F2 also zB. eine "5" steht, dann sollten im Diagramm automatisch nur die ersten 4 Werte dargestellt werden (also DataRange $Sheet1.$A$1:$C$5).

Könnte man in den Diagrammbereichen den INDIRECT-Befehl benutzen wäre das ganze kein Problem, leider geht das aber nicht (zumindest konnte ich noch nicht herausfinden, wie...).

Ich hoffe, ihr wisst, was ich meine und habt eine Lösung für mich!
Dieses Bsp. ist extrem vereinfacht mit nur 1 Diagramm, zusammenhängenden Zellen usw., wodurch vielleicht die Sinnhaftigkeit meiner Anfragen nicht ganz rüberkommt.
Im Endeffekt brauch ich das ganze für ein Calc-Dokument mit ca. 15 Sheets & 30 unterschiedlichen Diagrammen, bei denen ich Momentan jedes einzelne von Zeit zu Zeit händisch anpassen muss...

Gäbe es eine Möglichkeit, oben gefragtes zu realisieren könnte ich mir jedenfalls eine Menge arbeit ersparen...

danke, mfg

mik

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Mi, 29.04.2009 21:01
von Stephan
Das geht mittels Makro.

schau Dir mal die Beispieldatei für ein bewegtes Diagramm an:
http://www.calc-info.de/makros.htm#ani_dia

Diese enthält alles was Du brauchst, Du mußt das nur auf Deine Verhältnisse anpassen. Als Ausgangspunkt brauchst Du dort die zwei Makros Sub plus_eins und Sub alle, wobei Du Ersteres kürzen kannst auf:

Code: Alles auswählen

'...
oCalcDokument = ThisComponent
Z = oCalcDokument.Sheets().getByName("Sheet1").getCellRangeByName("F2").Value
alle()
dispatcher.executeDispatch(document, ".uno:ChangeChartData", "", 0, args2())
'...
und bei letzterem die eine Zeile ändern mußt auf:

Code: Alles auswählen

'...
args2(1).Value = "$Sheet1.$A$1" & ":" & "$A$" & Z
'...

Naja, soweit im Wesentlichen. Bei Problemen im Detail mußt Du halt nochmal rückfragen.


Gruß
Stephan

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Do, 30.04.2009 10:51
von skaface
Ok, das hilft schonmal ziemlich weiter. Herzlichen dank dafür schonmal.

Mein oben genanntes Bsp. konnte ich so auch schon ohne Probleme umsetzen. Für meine wirkliches Vorhaben bräuchte ich aber noch ein paar Infos...

Speziell das Array args2, welches anscheinend die Chart-Eigenschaften beinhaltet gibt mir noch ein paar Fragen auf:

1. Frage:

Code: Alles auswählen

	args2(0).Name = "Name"
	args2(0).Value = "Object 1"
"Object 1" ist hier wohl der Name des Diagramms. Wird wohl immer "Object 1" sein, wenn ich nur 1 Diagramm habe?
Nun hab ich aber mehrere Diagramme auf einem Arbeitsblatt. Woher weiß ich, wie die einzelnen Diagramme heißen? Unter "Object properties" konnte ich nichts finden...

2. Frage:

Code: Alles auswählen

	args2(1).Name = "Range"
	args2(1).Value = "$Sheet1.$A$1" & ":" & "$C$" & Z 
	args2(2).Name = "ColHeaders"
	args2(2).Value = true
	args2(3).Name = "RowHeaders"
	args2(3).Value = true
Auch soweit klar. Sind fast alle Einstellungen des 1. Tabs ("Data Range") im "Data Range"-Einstellungs-Dialog.

Bild

Also folgende Zuteilung:
"Range" = "Data range"
"ColHeaders" = "First column as label"
"RowHeaders" = "First row as label"

Die Frage ist nun:
Welche Namen haben die Einstellungen auf der 2. Tab ("Data Series")? Gibt es hierfür irgendwo eine Dokumentation?

Bild

Ich will also folgendes per Makro können:
- Den "Categories"-Wert festlegen (args2(4).Name = "Categories"?)
- Für jede einzelne Daten-Serie (also "301 pl.", "501 pl.", ...) die Werte "Name" und "Y-Values" zuordnen

Ich hoffe, das ganze wird nicht zu kompliziert und irgendwer kann mir auch hier noch weiterhelfen. Wenn es eine gute Dokumentation über dieses Thema gibt wäre ich über einen Link auch sehr dankbar!

danke, mfg

mik

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Do, 14.05.2009 11:34
von skaface
Sorry, fürs pushen aber hat hier wirklich niemand eine Idee, wie man sowas bewerkstelligen könnte, oder ist die Frage nicht verständlich?

danke, mfg

mik

ps.: Sollte wieder keine Antwort kommen, werde ich den Thread natürlich in Friede ruhen lassen und nicht nochmal raufholen ;)

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Do, 14.05.2009 14:37
von lorbass
skaface hat geschrieben:hat hier wirklich niemand eine Idee, wie man sowas bewerkstelligen könnte, oder ist die Frage nicht verständlich?
Vielleicht ist OOo Calc ja einfach nur das falsche Forum. Versuch's doch mal im Forum OOo Basic und Java.

Gruß
lorbass

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Do, 14.05.2009 15:46
von skaface

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Fr, 13.08.2010 16:23
von hylli
Es hindert Dich keiner daran bei Excel zu bleiben oder ein ganz anderes Tabellenkalkulationsprogramm zu nutzen.

Außerdem kann ich das hier...
55/3r3/3rij4thf ierht uehgb blqa bla bla
im verlinkten Thread nirgendwo finden.

Höflich angefragt und Dein Problem geschildert, würdest Du vllt. eine Antwort bekommen, so eher nicht.

Hylli

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Fr, 13.08.2010 16:31
von skaface
Don't feed the troll...

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Fr, 13.08.2010 21:00
von clag
Hallo skaface,

hier ein Idee wie man es recht einfach machen könnte
Diagramm-variieren.ods
(20.52 KiB) 285-mal heruntergeladen
vielleicht reicht dir das so und lässt sich recht einfach umbauen

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Fr, 13.08.2010 21:17
von Karolus
Hallo
@Clag
Du kannst ja richtig kreativ sein - Respekt!
:wink:

Gruß Karo

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Sa, 14.08.2010 10:05
von clag
Hallo skaface,

und jeder der es sonst noch gebrauchen kann

hier noch die exakte Umsetzung deines Wunsches sogar mit etwas Komfort :wink:
Diagramm-variieren_2.ods
(22.04 KiB) 137-mal heruntergeladen
biddescheen :D

edit:
korrektur im Makro bei der Adressierung der Tabellen hatte ich in *_2 zwar angedacht aber nicht umgesetzt :?
Diagramm-variieren_2a.ods
(25.13 KiB) 179-mal heruntergeladen

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: Sa, 14.08.2010 17:42
von sven-my
Haloo clag,

Dein "Diagramm-variieren_2" ist echt gut. Ich habe es mir so hingebogen, daß es für meine Diagramme (Ent- und Ladekurven von Akkus) alternativlos ist.

Allerdings stört etwas ganz gewaltig: Die X-Achse läßt sich nicht scalieren (Hauptinvervall); bei mir erscheint da nur ein einziger Ziffernsalat.

Das Hauptintervall soll auf 15 (15min) eingestellt werden, da die längste Anzeige so um und bei 6 Stunden (360 min) liegt.

Hast Du dafür auch eine Lösung ?


gruß
sven-my

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: So, 15.08.2010 10:04
von clag
Hallo sven-my,

da wäre es am einfachsten du lädst die "verhunzte" Datei mal hoch damit man sehen kann wo was schief gegangen ist

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: So, 15.08.2010 10:16
von sven-my
hallo clag,

anbei eine gekürzte Version meiner Datei (weniger Tabellen - reicht aber zum Darstellen des Fehlers).
03_Schrauber_mod.ods
(39.49 KiB) 122-mal heruntergeladen
Erstmal vielen Dank.


gruß
sven-my

Re: "Dynamische" Data Ranges in Diagramm

Verfasst: So, 15.08.2010 11:02
von clag
Hallo sven-my


meintest du das so ?
03_Schrauber_mod_a.ods
(54.13 KiB) 143-mal heruntergeladen