Diagramm mit Makro verändern

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Diagramm mit Makro verändern

Re: Diagramm mit Makro verändern

von Thomas Mc Kie » Fr, 28.09.2012 22:51

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

Re: Diagramm mit Makro verändern

von Oldie1948 » Do, 27.09.2012 11:28

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

Re: Diagramm mit Makro verändern

von Oldie1948 » Mi, 26.09.2012 15:42

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

Re: Diagramm mit Makro verändern

von balu » Mi, 26.09.2012 15:13

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

Diagramm mit Makro verändern

von Oldie1948 » Mi, 26.09.2012 11:18

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

Nach oben