Hallo Christian, hallo Michael,
Am 06.12.2010 23:29, schrieb Michael Höhne:
Hallo Christian,

  Ich habe eine Tabelle mit etwas über dreihundert Zeilen. In jeder Zeile
  steht vorne ein Name und dahinter 10 Spalten mit Daten.
  Ich benötige nun ein Diagramm um die Daten schnell auszuwerten.
  Da die Daten aber in sehr unterschiedlichen Liegen spielen (mal 15k +/- 2k
  und mal 200 +/- 50) kann ich nicht einfach die ganze Liste markieren und
  ein Diagramm erzeugen. Dann hab ich für die geringe Zeile eine Flatline.
...

Du könntest die Daten über eine weitere Tabelle normalisieren: Das
Minimum einer Zeile bekommt den Wert 0 und der größte Wert den Wert 1.

Beispiel:

Original:
Z1    1    2  -1    9   5
Z2 1000 1100 200 1500 300
Z3  0,5    2  -2  1,3 0,2

Eine andere Möglichkeit wäre, ein kleines Makro zu benutzen, welches das Diagramm dynamisch ändert:

Nehmen wir an, die Tabelle beginnt in A1 und sieht so aus:

     S1   S2  S3   S4  S5
Z1    1    2  -1    9   5
Z2 1000 1100 200 1500 300
Z3  0,5    2  -2  1,3 0,2

Dann erstellst Du in Zelle A1 eine Listbox (Ansicht-Symbolleisten-Formular Steuerelemente), mit der Du die Zeilen auswählst (Kontrollelement, Eigenschaften).
Als Quellbereich wählst Du A2:A4.

Der ListBox weist Du über Ereignisse, Status geändert folgendes Makro zu:

Sub itemState_Changed(e)
'keine Mehrfachselektion in der ListBox möglich
row = e.source.model.selectedItems(0)
' Datenbereiche
Dim aRanges(2) as new com.sun.star.table.CellRangeAddress
' Datenbereich für Achsen-Beschriftung
aRanges(0).StartColumn=0
aRanges(0).EndColumn=5
aRanges(0).StartRow=0
aRanges(0).EndRow=0
' Datenbereich für ausgewählte Zeile
aRanges(1).StartColumn=0
aRanges(1).EndColumn=5
aRanges(1).StartRow=row+1
aRanges(1).EndRow=row+1
' Hier ist mit 0 das erste Tabellenblatt bzw. das erste Chart gemeint
Thiscomponent.getSheets().getByIndex(0).getCharts().getByIndex(0).setRanges(aRanges())
End Sub

Gruß Peter

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Antwort per Email an