Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
636to640
636to640
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ChartObjects Collection

ChartObjects Collection
15.07.2005 11:23:45
Sebastian
Hallöchen,
ich habe eine Ansammlung von Charts in einem Sheet. Ich möchte nun in meinem Code ein Chart nach dem anderen bearbeiten. In der Vergangenheit hatte ich aber immer Probleme damit, Charts anzusprechen. Kann ich mit Hilfe der ChartObjects Collection einfach eine Schleife über die Collection laufen lassen und da drin jedes einzelne ChartObject ansprechen? Wenn ja, welche Methode sollte ich dazu benutzen? Aus der Hilfe werd ich an der Stelle einfach nicht schlau.
Danke,
Basti

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ChartObjects Collection
15.07.2005 11:47:16
Andreas
Hallo Sebastian,
hier mal ein kleines Beispiel:

Sub DiagrammeAuflisten()
Dim ch As ChartObject, s$
' Alle Diagramme durchlaufen
For Each ch In ActiveSheet.ChartObjects
With ch
' Name des Diagramms
s = s & .Name
' Diagrammtitel wenn vorhanden
If .Chart.HasTitle Then s = s & " - " & _
.Chart.ChartTitle.Characters.Text
s = s & vbCrLf
End With
Next ch
' Liste ausgeben
MsgBox s, vbInformation, "Liste der Diagramme in " & ActiveSheet.Name
End Sub

Hoffe das hilft weiter,
Gruß
Andreas
Nibbles für Excel
Anzeige
AW: ChartObjects Collection
15.07.2005 12:30:01
Sebastian
Hallo Andreas,
danke für die prompte Hilfe. Das hilft mir sehr. Leider bin ich auf ein anderes Problem gestoßen, bei dem du mir vielleicht auch helfen könntest? Ich will nämlich die Quelldaten und den Namen jedes Charts in meinem Sheet ändern. Ich habe das mit dem Macrorecorder aufgezeichnet und bin dabei auf die ChartObjects gestoßen, weswegen ich meine ursprüngliche Frage gestellt habe. Am besten mal kurz den aufgezeichneten Code:
ActiveSheet.ChartObjects(1).Activate
ActiveChart.ChartArea.Select
ActiveSheet.ChartObjects(1).SeriesCollection(1).Values = "='NCP V7 Data'!R29C58:R54C58"
ActiveSheet.ChartObjects(1).SeriesCollection(1).Name = "='NCP V7 Data'!R2C58"
Das hab ich erhalten, als ich die Daten des ersten Charts geändert habe. Kannst du mir vielleicht anhand deines obigen Beispiels zeigen, wie ich das mit allen anderen Charts mache? Ich habe es mit folgender Schleife probiert:
Dim ch As ChartObject
Dim ser As SeriesCollection
For Each ch In ActiveWorkbook.Sheets("NCP V7 NE Report").ChartObjects
With ch
For Each ser In ch
With ser
oldValue = .Values
pos = InStr(oldValue, c)
.Values = newValue + Mid(oldValue, pos)
oldValue = .Name
pos = InStr(oldValue, c)
.Name = newValue + Mid(oldValue, pos)
End With
Next ser
End With
Next ch
Danke.
P.S.: Wie kann ich eigentlich meine Code Schnipsel auch anständig anzeigen lassen? Brauch ich dazu nen Tag oder sowas?
Anzeige
AW: ChartObjects Collection
15.07.2005 13:14:38
Sebastian
OK, ich denke, ich konnte das Problem eingenzen:
In meinen Charts befindet sich eine Referenz auf einen Bereich in einer anderen Arbeitsmappe. Statt auf eine andere Arbeitsmappe zu verweisen, soll jedes meiner Charts seine Quelldaten aus einer anderen Datei DERSELBEN Arbeitsmappe beziehen. Der Bereich ändert sich dabei nicht.
Bisher habe ich die Values Property des Series Objects als String behandelt, was wohl mein Fehler war. Aber wie kann ich denn nun den Verweis an der Stelle ändern, ohne den Bereich explizit neu angeben zu müssen? Denn für jedes Chart soll der alte Bereich übernommen werden, nur halt in einem Sheet derselben Arbeitsmappe. Ich hoffe, hier weiß einer Rat....
Anzeige
AW: ChartObjects Collection
15.07.2005 14:08:11
Sebastian
Hab vergessen, das Häkchen bei "Frage noch offen" zu setzen. :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige