Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Achse per VBA skalieren

Forumthread: Achse per VBA skalieren

Achse per VBA skalieren
Michael
Hallo xlGemeinde,
ich würde gerne die Achsen eines Diagrammes per VBA skalieren. Leider kann ich nur den Recorder bedienen und habe mir folgenden Code zusammen gefummelt. Leider funktioniert er nicht die letzte Zeile wird im VBA Editor rot dargstellt, was vermutlich ein Fehler bedeutet.
ActiveSheet.ChartObjects("Diagramm 2").Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MaximumScale = MAX(R[-5]C[-23]:R[2]C[-12])*1.1
Danke
Michael
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Achse per VBA skalieren
16.09.2011 13:28:35
Beverly
Hi Michael,
in VBA kann zu 99% auf Select und Activate verzichtet werden. Versuche es mal mit dieser 1 Codezeile anstelle deiner 3:

   ActiveSheet.ChartObjects("Diagramm 2").Chart.Axes(xlValue).MaximumScale = Application.Max(Range("A5:A20")) * 1.1

Den Bereich A5:A20 musst du an deine Bedingungen anpassen.


Anzeige
AW: Achse per VBA skalieren
16.09.2011 13:51:57
Michael
Hi Karin,
super vielen Dank funktioniert. Wie kann ich denn alle Diagramme dieses Tabellenblattes ansprechen, anstatt nur dem einen?
Bzw. die Datei wird mehrere Tabellenblätter haben in denen Graphen sind. Aber die Graphen pro Tabellenblatt sollen mit den Max-Werten des jeweils entsprechenden Blattes skaliert werden. Muss ich pro Tabellenblatt ein Makro machen und diese dann per Call aneinander durchlaufen lassen?
Gruß
Michael
Anzeige
AW: Achse per VBA skalieren
16.09.2011 17:32:58
Beverly
Hi Michael,
nein, das ist nicht erforderlich. Man kann in einer Schleife über alle Tabellenblätter und darin wieder über alle Diagramme laufen:

Sub DiasFormatieren()
Dim wksTab As Worksheet
Dim intDia As Integer
For Each wksTab In Worksheets
If wksTab.ChartObjects.Count > 0 Then
With wksTab
For intDia = 1 To .ChartObjects.Count
.ChartObjects(intDia).Chart.Axes(xlValue).MaximumScale = _
Application.Max(.Range("A5:A20")) * 1.1
Next intDia
End With
End If
Next wksTab
End Sub



Anzeige
AW: Achse per VBA skalieren
19.09.2011 09:53:40
Michael
Hi,
leider kommt es ab der Zeile .ChartObjects(intDia).... zum Fehler. Laufzeitfehler 13 -> Typen unverträglich
Sagt mir leider überhaupt nichts!

Sub AxisScale()
Dim wksTab As Worksheet
Dim intDia As Integer
For Each wksTab In Worksheets
If wksTab.ChartObjects.Count > 0 Then
With wksTab
For intDia = 1 To .ChartObjects.Count
.ChartObjects(intDia).Chart.Axes(xlValue).MaximumScale = _
Application.Max(.Range("AE23:AV34")) * 1.05
Next intDia
End With
End If
Next wksTab
End Sub

Anzeige
AW: Achse per VBA skalieren
19.09.2011 11:20:59
Beverly
Hi Michael,
kann ich bei mir nicht nachvollziehen (andernfalls hätte ich auch den Code nicht gepostet) - da musst du schon mal deine Arbeitsmappe hochladen.


AW: Achse per VBA skalieren
19.09.2011 11:49:05
Michael
Wenn ich Datei als *.xls speichere dann funktionierts. Wenn ich Sie als *.xlsb speichere bekomme ich diese Fehlermeldung. Kann das mit dem Dateiformat zusammenhängen?
AW: Achse per VBA skalieren
19.09.2011 13:24:58
Beverly
Hi Michael (hier steht in einem Beitrag die Anrede),
ich habe deine Mappe als .xlsb abgespeichert - erhalte ebenfalls keine Fehlermeldung.
(und hier steht in einem Beitrag der Gruß)


Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige