Diagramm mit Makro verändern

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

Moderator: Moderatoren

Oldie1948
Beiträge: 3
Registriert: Mi, 26.09.2012 11:01

Diagramm mit Makro verändern

Beitrag von Oldie1948 »

Hi,
nachdem ich hier im Forum schon einige Tage gestöbert habe, aber keinen Lösungsansatz für mein Problem gefunden habe, will ich hoffen das mir jemand weiterhelfen kann.

Ich habe eine Calc Tabelle die ein Liniendiagramm enthält. Die Daten hiezu werden in die Tabelle mit einem Makro aus einer CSV- Datei eingelesen.

Die Daten haben unterschiedliche Anzahl von Datensätzen, so das ich dann den Datenbereich für das Diagramm verändern muss.

Und hier liegt der Hund begraben.
Nach langen Suchen habe ich endlich die Einträge in den Eigenschaften des Diagramms gefunden:

oSheetsDia=oDoc.sheets.getByName("Tabelle1")
oCharts=oSheetsDia.getCharts.getByIndex(0)
oChartObj=oCharts.EmbeddedObject
mwert(1) = oChartObj.UsedRangeRepresentations(1)
for i = 2 to 6 step 2
mwert(i) = oChartObj.UsedRangeRepresentations(i) 'Auslesen
neuwert = left(mwert(i),instr(mwert(i),":")+3)&"200" 'manipulieren

oChartObj.UsedRangeRepresentations(i)= neuwert ' zurückschreiben funktioniert ohne meckern!!!

Aber nach dem zurückschreiben stehen weiterhin die alten Daten in den Eigenschaften.
Wer hat hier einen Lösungsansatz für mich, bevor ich weiter 100000 graue Haare bekomme?

Gruß
Herbert
Nur der ganz frühe Wurm entgeht dem Vogel.....
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Diagramm mit Makro verändern

Beitrag von balu »

Hallo Herbert,
bevor ich weiter 100000 graue Haare bekomme ...
... möchte ich dich darum bitten eine Beispieldatei hier anzuhängen :wink:.
Mir ist nämlich z.B. nicht ganz klar ob Du in deinem geposteten Code nach FOR das NEXT vergessen hast, oder aber ob da überhaupt ein NEXT vorhanden ist? Und eine Beispieldatei hat den Vorteil das dir zielführender geholfen werden kann.



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
Oldie1948
Beiträge: 3
Registriert: Mi, 26.09.2012 11:01

Re: Diagramm mit Makro verändern

Beitrag von Oldie1948 »

Hallo Balu,

Das fehlende next ist nicht das problem, ist im Original vorhanden.
Leider werden die veränderten Werte nicht ordnungsgemäß zurückgeschrieben.

Wenn ich nach dem ausführen des Makros mir die Eigenschaften des Diagramms (Datenbereich) anschaue, so sind die unverändert!!
Im Anhang das kpl. Sub
Anhägen funktioniert nicht

sub diaupd()
DIM oDoc
dim sheets
dim oCharts
dim ochartobj
Dim oSheetsDia
DIM iZeile as integer, iSpalte as integer
dim mwert(10) as string
dim neuwert as string
dim i as integer
oDoc=ThisComponent

oSheet1=oDoc.sheets.getByIndex(0) '//Auswahl des ertsen sheets
iZeile=Ubound(oSheet1.RowDescriptions)+1 '//auslesen der letzen Zeile
'sBereich="$Tabelle1.$A$1:.$"+x(iSpalte)+"$"+cInt(iZeile) '//so lautet die eigentliche Verwendung für später
sBereich="$Tabelle1.$B$51:$D$200" '//neuer Datenbereich zum Test
oSheetsDia=oDoc.sheets.getByName("Tabelle1")
oCharts=oSheetsDia.getCharts.getByIndex(0)
oChartObj=oCharts.EmbeddedObject
mwert(1) = oChartObj.UsedRangeRepresentations(1)
for i = 2 to 6 step 2
mwert(i) = oChartObj.UsedRangeRepresentations(i)
neuwert = left(mwert(i),instr(mwert(i),":")+3)&"200"
oChartObj.UsedRangeRepresentations(i)= neuwert

next i



end sub

Gruß
Herbert
Nur der ganz frühe Wurm entgeht dem Vogel.....
Oldie1948
Beiträge: 3
Registriert: Mi, 26.09.2012 11:01

Re: Diagramm mit Makro verändern

Beitrag von Oldie1948 »

Hallo zusammen,

nachdem ich mir tagelang die Haare gerauft habe (sind jetzt alle weg!) , endlich die Lösung gefunden!!!

Code: Alles auswählen

Sub ChartRefresh
   
   oDocThis = ThisComponent

   Sheet1 = oDocThis.Sheets(0)
'   rowCount = Sheet1.getCellRangebyName("Row_Count").value
rowCount = 555   
   Ch1 = Sheet1.Charts(0)
'Sloop = 0   
   rgs = Ch1.relateDCellRanges
   for sloop = 1 to 7 step 2
      rgs(sloop).EndRow = rowCount
   next sloop
   
   Ch1.setRanges(rgs)
End Sub
Und nun nach viel Spaß
Herbert
Nur der ganz frühe Wurm entgeht dem Vogel.....
Thomas Mc Kie
******
Beiträge: 921
Registriert: Mo, 12.04.2010 00:37

Re: Diagramm mit Makro verändern

Beitrag von Thomas Mc Kie »

Oldie1948 hat geschrieben:bevor ich weiter 100000 graue Haare bekomme?
http://de.wikipedia.org/wiki/Haar#Zahle ... m_Menschen
Oldie1948 hat geschrieben:nachdem ich mir tagelang die Haare gerauft habe (sind jetzt alle weg!)
Ist damit das graue Haare Problem gelöst? :D
Antworten