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.:
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:
"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.
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?
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
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!
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
biddescheen
edit:
korrektur im Makro bei der Adressierung der Tabellen hatte ich in *_2 zwar angedacht aber nicht umgesetzt
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).
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
?