Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1228to1232
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
Inhaltsverzeichnis

Rückgabe ChartObject

Rückgabe ChartObject
Viktor
Hallo zusammen,
an folgendem Problem verzweifele ich seit längerm. Kann mir jemand helfen?
In einem Diagramm mit eingebettetem weiteren Diagramm (ChartObject ?) möchte ich sowohl die Datenreihenlänge (SeriesCollection), als auch die Achsenskalierung automatisch per Makro für das Hauptdiagramm und auch das eingebettete Diagramm anpassen. In der Orginaldatei kann sich nämlich die Anzahl der Werte und auch die Höhe der Werte je nach ausgewerteten Inputdaten ändern. Die Anpassung des Hauptdiagramms ist kein Problem, aber das eingebettete Diagramm kriege ich per Makro nicht angesprochen. Zur Veranschaulichung habe ich meine Exceldatei inkl. Makros hochgeladen:
https://www.herber.de/bbs/user/76653.xlsm
Makro 1 für das Hauptdiagramm funktioniert einwandfrei. Makro 2 habe ich mit Hilfe des Rekorders erstellt. Manuell kann ich also alle gewünschten Anpassungen vornehmen. Nur wenn ich das aufgezeichnete Makro 2 laufen lassen will gibts Fehlermeldungen. Hab schon alles mögliche probiert, klappt aber nicht.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Rückgabe ChartObject
17.09.2011 19:23:41
robert
Hi,
ich habe Scale angehängt-kein Fehler mehr..
Gruß
robert
ActiveChart.Axes(xlValue).MaximumScale = Yendwert
AW: Rückgabe ChartObject
17.09.2011 20:20:20
Viktor
Hallo Robert,
danke für Deine Rückmeldung. Bei mir funktioniert das Makro 2 leider immer noch nicht. Bei mir kommt schon in der Zeile
ActiveSheet.ChartObjects("Chart 1").Activate
Die Fehlermeldung "Die Methode Activate für das ChartObject ist fehlgeschlagen." Wenn ich stattdessen
ActiveSheet.ChartObjects(1).Activate
schreibe läuft das Makro zwar weiter, aber dann wird das Hauptdiagramm statt das eingebettete Diagramm verändert. Ich verwende übrigens Office 10. Die Datei wurde ürsprünglich mit Office 2003 erstellt und lief dort super.
Anzeige
AW: Rückgabe ChartObject
17.09.2011 20:31:23
Viktor
Hallo nochmal,
sorry, aber ich verwende nicht Office 10, sondern Office 2007. Bin schon völlig fertig :+}
AW: Rückgabe ChartObject
18.09.2011 09:31:03
Beverly
Hi Victor,
in VBA kann man zu 99% aller Fälle auf Select und Activate verzichten.

Sub Makro1()
'   Hauptdiagramm
AnzWerte2 = Sheets("AuswertJDL").Range("H1")
iEndwert = Sheets("AuswertJDL").Range("H2")
iHauptinterv = Sheets("AuswertJDL").Range("H9")
With Charts("Dauerlinie")
.SeriesCollection(1).XValues = "=AuswertJDL!R1C2:R" & AnzWerte2 & "C2"
.SeriesCollection(1).Values = "=AuswertJDL!R1C3:R" & AnzWerte2 & "C3"
With .Axes(xlValue)
.MaximumScale = iEndwert
.MajorUnit = iHauptinterv
End With
End With
End Sub
Sub Makro2()
'   Eingebettetes Diagramm
AnzWerte3 = Sheets("AuswertJDL").Range("H7")
Ykleinstwert = Sheets("AuswertJDL").Range("H3")
Yendwert = Sheets("AuswertJDL").Range("H4")
YTeilung = Sheets("AuswertJDL").Range("H10")
With Charts("Dauerlinie").ChartObjects("Chart 1").Chart
.SetSourceData Source:=Sheets("AuswertJDL").Range("D1:E" & AnzWerte3)
.Axes(xlValue).MaximumScale = Yendwert
.Axes(xlValue).MinimumScale = Ykleinstwert
.Axes(xlValue).CrossesAt = Ykleinstwert
End With
End Sub

Außerdem hatte dein Code einen Fehler - anstelle

    ActiveChart.Axes(xlValue).Maximum = Yendwert

muss esheißen

    ActiveChart.Axes(xlValue).MaximumScale = Yendwert



Anzeige
Danke für die Lösung
18.09.2011 10:53:31
Viktor
Hallo Karin,
herzlichen Dank für diese super Lösung. Du hast mir den Sonntag gerettet!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige