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

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

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.


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

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.


Anzeige
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige