Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Diagramme ansprechen und manipulieren
23.01.2007 11:07:40
Boris
Hallo,
ich habe hier ein "Information sheet", das sich bei Änderung der ID in Zelle "B3" automatisch aktualisiert, Bilder einfügt, Diagramme anpasst usw. Je nach ID gibt es einen unterschiedlichen Betrachtungszeitraum, so dass die Wertebereiche der bereits erstellten Diagramme (insgesamt 6) angepasst werden sollen. Das soll über VBA geschehen. Also habe ich den Macrorecorder gestartet und einfach mal eins der Diagramme manipuliert. Folgendes kam heraus (ChartsAnpassen wird durch das worksheet_change-ereignis aufgerufen):

Sub ChartsAnpassen()
ActiveSheet.ChartObjects("Chart 3").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Values = "='Property Information'!R183C52:R183C64"
End Sub

1) "='Property Information'!R183C52:R183C64" kann ich nun je nach Betrachtungszeitraum anpassen -> kein Problem, da ich anstatt der 64 den richtigen Wert aus einer Zelle auslese und anpassen kann.
2) Wie spreche ich die Diagramme korrekt an, woher weiss ich wie ein Diagramm "heisst"? So habe ich z.B. keine Ahnung, warum das ausgewählte Diagramm den Namen "Chart 3" hat...
3) Wie programmiere ich das "sauber". Ich möchte die Diagramme nicht erst auswählen, aktivieren, selektieren, sondern direkt ansprechen. Dafür fehlen mir jedoch VBA-Kenntnisse.
Viele Grüße, Boris
P.S: Im Moment werden die Diagramme automatisch über dynamisch definierte Feldnamen angepasst, das ist zwar schön, hilft mir aber in diesem Fall nicht weiter.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramme ansprechen und manipulieren
23.01.2007 16:02:39
fcs
Hallo Boris,
die Namen von im Tabellenblatt eingebetteten Diagrammen werden von Excel automatisch durchgezählt. Änderung des Namens ist meines Wissens nur per VBA möglich.
Nachfolgend ein Makro mit dem du dir die Informationen zu den Diagrammen im Tabellenblatt anzeigen und ggf. den Objekt-Namen des Charts ändern kannst.
Das 2. Makro ist ein Beispiel wie du die eingebetteten Diagramme direkt über den Namen ansprechen kannst, wobei das Diagramm einer entsprechenden Objektvariablen zugewiesen wird, weil dann die weitere Erstellung des Codes einfacher ist.
Gruß
Franz

Sub DiagrammInformationen()
Dim wks As Worksheet, DiagOb As ChartObject, Diag As Chart, DiagObjektName As String
Set wks = ActiveSheet
For Each DiagOb In wks.ChartObjects
Set Diag = DiagOb.Chart
DiagOb.Activate
'Diagramm-Objektinformationen anzeigen, ggf. Objektnamen ändern
DiagObjektName = InputBox("Alter Diagramm-Objektname: " & DiagOb.Name & vbLf _
& "Diagramm-Name: " & Diag.Name, "Diagramm umbenennen", DiagOb.Name)
If Trim(DiagObjektName) <> "" Then DiagOb.Name = Trim(DiagObjektName) 'Trim zum Entfernen von Leerzeichen
Next
End Sub
Sub DiagrammBearbeiten()
Dim wks As Worksheet, Diag As Chart
Set wks = ActiveSheet
'Diagramm direkt ansprechen
Set Diag = wks.ChartObjects("Chart 1").Chart
With Diag
.ChartArea.Interior.ColorIndex = 8
End With
Set Diag = wks.ChartObjects("Chart 2").Chart
With Diag
.ChartArea.Interior.ColorIndex = 7
End With
End Sub

Anzeige
AW: Diagramme ansprechen und manipulieren
25.01.2007 15:51:29
Boris
Hi Franz,
das finde ich etwas merkwürdig, dass man sich den Diagramm-Namen nur per VBA anzeigen lassen kann. Dein Makro1 ist allerdings sehr hilfreich...
Die Änderung des Wertebereichs nehme ich jetzt so vor:
WS.ChartObjects("Chart 1").Chart.SeriesCollection(1).Values = WS.Range("BK5").Value
wobei WS als worksheet definiert ist. Funktioniert.
Könnte ich in deinem Beispiel2 auch gleich folgendes definieren: Set Diag = ActiveSheet.ChartObjects("Chart 1").Chart? Eigentlich könnte ich es ja testen, habe nur zuviel zu tun:)
Danke, Boris.
AW: Diagramme ansprechen und manipulieren
25.01.2007 21:27:46
fcs
Hallo Boris,
Set Diag = ActiveSheet.ChartObjects("Chart 1").Chart
sollte auch funktionieren. Ich persönlich bevorzuge den Weg über entsprechende Objekt-Variablen (hier im Beispiel wks), da sich Code so einfacher modifizieren und für andere Projekte anpassen läßt
Gruss
Franz
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen