Hallo Horst,

habe mir schnell anhand einer Beispiel-Tabelle mit 2 Diagrammen und einer
Basic-Codzeile erstellt, um Deinem Problem "kein Zugriff auf ein Diagramm"
besser nachvollziehen zu können. Ich bin dabei (vieleicht) auf das Problem gestoßen.

Den 2 Diagrammen in meiner Calc-Tabelle (Sheets(0)) habe ich Namen vergeben.
(Diagramm makieren, rechte Maustaste, Name). Anschließend, mit folgender
Code-Zeile hätten jetzt die Namen der Diagramme mit dem Ojekt-Inspektor xray
angezeigt werden müssen.
Sub Main
Mein_Diagramm() =ThisComponent.Sheets(0).Charts.ElementNames
xray Mein_Diagramm()
End Sub

Das tat es erstaunlicherweise nicht, sondern die Ausgabe lautete "Object 1" und
"Object 2" (mit Leerzeichen).
Also jetzt dürfte klar sein warum Dein Zugriff auf das Diagramm nicht klappt.
Deine Frage wie man die Namen der Diagramme herraus bekommt ist auch
beantwortet(ElementNames wird in ein Array eingelesen()). Die Anzahl  der
existierender Diagramme in einer Tabelle wird mit der Eigenschaft COUNT
oder der Methode GETCOUNT() ermittelt. Mit der Methode HASELEMENTS()
kann überprüft werden, ob überhaupt Diagramme vorhanden sind.
Mit GETBYNAME(String) und GETBYINDEX(Long) kannst Du auch auf ein
existierendes Diagramm zugreifen. Bleibt noch die Methode HASBYNAME(
String) die überprüft, ob ein bestimmtes Diagramm existiert und zuletzt noch
die Methode zum löschen REMOVEBYNAME(). Weitere Fehlerquellen können
sein: Falsche Tabelle! Klingt vieleicht blöd aber passiert mir auch immer wieder
( Zählung beginnt mit 0; also Tabelle1 ist Sheet(0))
Ist das Makro auch innerhalb des Dokumentes (ThisComponent)?
Wenn diese Dinge OK sind muß es auch funktionieren. Für Dein Diagramm lautet
also der Zugriff auf Tabelle 1, Diagramm 1. Dein_Diagramm = ThisComponent.Sheets(0).Charts.getByName("Object 1")
oder:
Dein_Diagramm = ThisComponent.Sheets(0).Charts.getByIndex(0)

Was willst Du überhaupt anschließend mit Deinem Diagramm machen?
Laß von Dir hören.

Gruß Bernd

Horst Schulze schrieb:
Hallo Bernd,

danke für deine Antwort. Das habe ich schon versucht.
Vielleicht habe ich ja den falschen Namen genommen. Ich habe die Grafik dia1 
benannt
objDiagramm = oDoc.Sheets(0).Charts.getByName("dia1")
Dannkam der Fehler es ist eine exception aufgetreten
..nosuchelementexception

auch mit dem Namen object1 oder diagramm1 geht es nicht.


Ich habe mit
a =  oDoc.Sheets(0).Charts
a untersucht aber da finde ich nichts, was auf ein Diagramm hindeutet


Wenn ich den falschen Namen habe, wie bekomme ich den Namen des diagramms raus?

Was mache ich sonst noch falsch?

Horst



Am 1 May 2008 um 1:01 hat Bernd Altland geschrieben:

Horst Schulze schrieb:
Hallo,

wie kann man mit einem Macro auf ein Diagramm in einer Calc Tabelle zugreifen, bzw. welches Object muss man da ansprechen.

Ich hab schon alles probiert, was mir eingefallen ist, aber nichts funktioniert.

Ziel ist es, den Datenbereich u.a. des Diagramms zu ändern.

Für einen Hinweis wäre ich sehr dankbar, auch für die Bestätigung, dass das nciht funktioniert.

Horst Schulze

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Hallo Horst,
auf ein bestehendes Diagramm in einem Calc-Dokument wird z.B. mit

oDoc = ThisComponent
objDiagramm = oDoc.Sheets(0).Charts.getByName("Dein_Diagramm_Name")

zugegriffen.
Weitere Eigenschaften des Diagramms erreichtst Du mit ".... .embeddedObject" das an die letzte Codezeile angehängt wird. Um das Objekt auf seine Eigenschaften und Methoden zu "untersuchen" verwende das Macro-Tool "Xray" (Downloaden). Damit suchst Du Dir die passenden Eigenschaften und Methoden aus, um Dein Diagramm per Macro zu verändern. Solltest Du nicht zurecht kommen kann ich Dir bei Bedarf ein Beispielcode zusenden.
Gruß Bernd


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an