Thema Datum  Von Nutzer Rating
Antwort
Rot Über VBA eine Grafik in einer Grafik skalieren
15.06.2015 18:37:06 Marc Borst
NotSolved

Ansicht des Beitrags:
Von:
Marc Borst
Datum:
15.06.2015 18:37:06
Views:
2253
Rating: Antwort:
  Ja
Thema:
Über VBA eine Grafik in einer Grafik skalieren

Hallo Zusammen, 

ich bin gerade dabei eine Darstellung für meine Bachelorarbeit in Excel zu erarbeiten und stehe nun vor einen Problem. 
Meine Excel-Datei soll Daten über eine Eingabemaske aufnehmen, über Konsolidierungen auswerten und in Form einer Überleitungschaukel (Wasserfalldiagramm) darstellen.

So weit so gut. Daten können eingegeben werden, Grafiken werden automatisch erstellt.
Die Y-Achse wird einen, je nach Dateneingabe, Datenbereich von 100 bis 10000 abdecken müssen, je nachdem wo der Startwert eben anfängt. Jetzt ist das natürlich äußerst schlecht, wenn ich Teilergebnisse von 10 Einheiten habe, die auf der Y-Achse dargestellt werden sollen (Y-Achse ist ca. 15 cm hoch).

Deswegen habe ich mir folgendes überlegt. Ich nehme den Anfangswert und skaliere die Grafik knapp unter den Startwert, sodass ich die 15 cm Y-Achse vollständig für meine Überleitungsschaukel benutzen kann und nicht mehr den vollständigen Startwert anzeigen lasse. Klappt super!
Wenn jetzt jemand seine Darstellung haben möchte, will der ja nicht extra jedes mal die doofe Y-Achse skalieren. Also habe ich mir gedacht "mach ich das doch automatisch über VBA".  Makro-aufgezeichnet, ausgeführt und einen Button auf die erste Seite gepackt. Läuft super! - auf der ersten Grafik - 

Nun zu meinem Problem:

Es werden zwei Datengrößen gegenübergestellt. Um das auch direkt ausdrucken zu können, habe ich die erste Grafik in Excel 2007 in ein eigenes Worksheet verschoben. Die zweite Grafik habe ich auch dort rein verschoben. Dadurch habe ich sozusagen eine Grafik in einer Grafik. 
Wenn ich mir jetzt ein Marko aufzeichnen, dann wird mir für die Grafik in der Grafik eine Bezeichnung im Quelltext angegeben, die auch mit der Bezeichnung in Excel Register Layout/Diagrammname übereinstimmt. 


Jedes mal, wenn ich jedoch die Grafik in der Grafik über VBA skalieren lassen möchte (ohne sie vorher ausgewählt zu haben), wird mir ein Fehler bei der Datenbezeichnung angezeigt. Der Befehl an dem es stock heißt: 

"ActiveSheet.ChartObjects("Diagramm 8").Activate" --> "Diagramm 8" ist - wie Ihr schon richtig vermutet- die Grafik in der Grafik. 

Mein Lösungsansatz:

Wenn Excel den Namen nicht mag verknüpfe ich eben die zweite Graifk mit einem Makro, das nur noch folgenden Quellcode besitzt : 

" ActiveChart.Axes(xlValue).MinimumScale = Worksheets("Darstellungsvorbereitung").Cells(29, 2).Value"

Das funktioniert. AAAber es funktioniert nicht, wenn ich die erste Tabelle mit dem commandButton aktualisieren lasse und von dort aus das Makro aufrufen lasse, das mit der zweiten Grafik verbunden ist. 

 

Frage: 

Kann mir jemand sagen, was ich falsch mache? Kennt jemand eine Möglichkeit, um in VBA eine Grafik in einer Grafik so anzusprechen, dass man die Grafik skalieren kann?

 

Vielen Dank schon einmal für die Hilfe!

 

Gruß, 

Marc


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Über VBA eine Grafik in einer Grafik skalieren
15.06.2015 18:37:06 Marc Borst
NotSolved