online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon sickboy1 vom 20.08.2019, 13:11 Options

(Balken-) Diagramm: dynamische Achsenskalierung

Hallo,

ich mehrere gleich aufgebaute Diagramme erstellt.
Es werden jeweils 12 Werte (für die zwölf Monate) abgebildet. Die Achsenskalierung soll automatisch mit dem Minimum der Werte beginnen und mit dem Maximum enden.
Das Minimum soll NICHT bei Null sein, sondern bei dem ersten Wert der größer ist als Null!
Kann man das irgendwie zaubern? VBA? Formel? Keine Ahnung wie!
Hilfe wäre spitze!
Besten Dank!

PS: hier ist schon ein recht ähnliches Problem! Ich kann allerdings die Datei nicht runterladen und habe daher auch nicht den Code!
http://www.supportnet.de/threads/1500057


Antwort schreiben

Antwort 1 von Beverly vom 20.08.2019, 15:36 Options

Hi,

und weshalb kannst du die Datei nicht herunterladen? Der Link funktionert doch.

Bis später,
Karin

Antwort 2 von sickboy1 vom 20.08.2019, 16:06 Options

..weil mir bei diesem PC (Arbeit) die entsprechenden Rechte fehlen!

Antwort 3 von Beverly vom 20.08.2019, 16:33 Options

Hi,

hier ist der Code

Option Explicit

Sub min_max_anpassen() 
'**************************************************
'* 23.02.06, geändert 05.08.06                    *
'* erstellt von Karin, http://beverly.excelhost.de*
'* beverly@excelhost.de                           *
'**************************************************
    Dim chDiagramm As Chart     ' Variable für das Diagrammobjekt
'   Prozedur verlassen wenn aktive Tabelle nicht Tabelle1 ist
    If ActiveSheet.Name <> "Tabelle1" Then Exit Sub
'   Prozedur verlassen wenn keine numerischen Werte für Minimum und Maximum
    If Not IsNumeric(Cells(1, 2)) Or Not IsNumeric(Cells(2, 4)) Then Exit Sub
'   Prozedur verlassen wenn Maximum kleiner als Minimum
    If Cells(2, 4) < Cells(1, 4) Then Exit Sub
'   Falls das Diagramm aktivi ist, zur Sprungmarke Ende gehen
    On Error GoTo Ende
'   Diagramm 1 der Variablen zuweisen
    Set chDiagramm = Worksheets("Tabelle1").ChartObjects("Diagramm 1").Chart
    With chDiagramm.Axes(xlValue)
        .MinimumScale = Cells(1, 4)
        .MaximumScale = Cells(2, 4)
    End With
Ende:
'   Variable leeren
    Set chDiagramm = Nothing
End Sub


Bis später,
Karin

Antwort 4 von sickboy1 vom 21.08.2019, 11:35 Options

Danke Dir erstmal!
Da ich in VBA nicht wirklich bewandert bin, muss ich erstmal ein bisschen rumprobieren!

Wenn ich das richtig sehe, wird die NULL als Minimum aber auch verwendet, oder?
Das soll nämlich eigentlich genau nicht der Fall sein!

LG!

Antwort 5 von Beverly vom 21.08.2019, 14:40 Options

Hi,

nein, dass siehst du nicht richtig: in D1 wird das darzustellende Minimum und in D2 das Maximum als Zahlenwert eingetragen - sie sind also frei wählbar durch den Benutzer. Wenn allerdings als Minimum 0 eingetragen wird, wird 0 logischerwesie als Minimum im Diagramm genommen. Das gilt aber genauso auch für das Maximum.

Bis später,
Karin

Antwort 6 von sickboy1 vom 22.08.2019, 09:38 Options

So gaaanz langsam komme ich dahinter!
Vielleicht sollte ich mein Anliegen nochmal etwas konkretisieren:

Die Daten für die Grafik(en) sind in einem Tabellenblatt "Daten".
Die Grafiken befinden sich in einem anderen Tabellenblatt "Grafiken".
Insgesamt sind es ...schätzungsweise... 80 Grafiken.
Ich würde ungerne eine Hilfstabelle machen, in der ich von den ca. 80 Tabellen aus denen die Daten für die Grafik gezogen werden nochmas das jeweilige Minimum und das Maximum herausziehe.

Am besten wäre es, wenn ich der Grafik quasi sagen könnte: " Schaue in den Bereich XY auf dem Tabellenblatt "Daten", nimm die höchste Zahl als Maximum der Achse und nimm das Minimum (aber nicht die Null) als Minimum der Achse.
Und das dann für alle Graiken.

Zu viel verlangt?
Überhaupt Verständlich?

Antwort 7 von peko vom 22.08.2019, 13:45 Options

Hallo,

danke, konnte ich auch gut gebrauchen.

Gruß
Peter

Antwort 8 von Beverly vom 22.08.2019, 15:40 Options

Hi,

da ich den konkreten Aufbau deiner Arbeitsmappe nicht kenne, kann ich auch nur allgemein antworten: durchlaufe in einer Schleife deine Hilfstabelle, ermittle z.B. mit Application.WorksheetFunction.Max bzw. Min die Zelle mit dem Maximum/Minimum und weise sie dem entsprechenden Diagramm mit diesem Codeteil von oben zu:

Set chDiagramm = Worksheets("Tabelle1").ChartObjects(inSchleifenzaehler).Chart
With chDiagramm.Axes(xlValue)
.MinimumScale = Cells(ZeileMin, SpalteMin)
.MaximumScale = Cells(ZeileMax, SpalteMax)
End With


Bis später,
Karin

Antwort 9 von sickboy1 vom 23.08.2019, 13:11 Options

Tag!
Danke für die Hilfe!
Ich denke damit bekomme ich das hingebastelt!!
Großartig! :-)

Ähnliche Themen

Farbliche Schaffierung wird Schwarz gedruckt
IT304  19.07.2007 - 55 Hits - 1 Antwort

Diagramme in Excel
GerryVo  04.12.2007 - 81 Hits - 4 Antworten

Treppen Diagramm
yuan  07.12.2007 - 142 Hits - 2 Antworten

Achsenskalierung von OLE Chart in VB6
Paulo87  18.04.2008 - 30 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026