Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1208to1212
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

dyn. Diagramme mit herausragenden Werteangaben

dyn. Diagramme mit herausragenden Werteangaben
Werner
Hallo allerseits,
ich habe eine dynamische Diagramm- Auswertung erstellt.
Eigentlich läuft auch alles wunderbar bis auf einen kleinen Schönheitsfehler.
Die Skalierung des Diagramms passt nicht, wenn ich die Werte der Balken außerhalb dieser platzieren möchte.
Innerhalb geht leider nicht, da je nach Auswertungszusammenstellung die Balken zu eng zusammen liegen und die Werte dann nicht mehr lesbar sind.
Um nachfolgende Situation zu verhindern:
Userbild
möchte ich die Skalierung dem Maximalwert anpassen.
Hierzu muss man wissen das dieser je nach Auswahlzusammenstellung von 1-2 Euro, bis hin zu einigen Millionen Euro fällt.
Gibt es evtl. eine Excelfunktion, die diesen Fall berücksichtigt, oder hat evtl. jemand hier eine andere Idee?
Userbild
Anbei noch die Datei, wo ich die Beispielwerte eingetragen habe.
https://www.herber.de/bbs/user/74360.xls
Im Tabellenblatt „Dia_dyn“ wird die Tabelle durch betätigen der Schaltfläche erstellt, die sich anhand der eingestellten Parameter orientiert.
Gruß
Werner

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
wie folgt selbst gelöst
12.04.2011 23:07:18
Werner
Hallo zusammen,
ich habe mein Problem nun wie folgt gelöst.
Userbild
Davon ausgegangen, dass die Höhe vom Diagramm mit 400 Pixel, der Skalierungsbereich mit 296 Pixel verbleibt, konnte ich den Maximalwert ins Verhältnis setzen.
Durch die Festlegung der Schriftart und – größe, habe ich für die Wertangaben nachfolgende Pixelhöhen festgestellt:
    MaxWert = 0
    ' Maximalwert ermitteln 
    Set chtSC = ActiveSheet.ChartObjects(1).Chart.SeriesCollection
    For intSC = 1 To chtSC.Count ' Datenreihen durchlaufen 
        For intPT = 1 To chtSC(intSC).Points.Count ' Datenpunkte innerhalb von Datenreihen durchlaufen 
           varValues = chtSC(intSC).Values
           If varValues(intPT) > MaxWert Then MaxWert = varValues(intPT)
        Next intPT
    Next intSC
    
    If MaxWert >= 10000000 Then
       Skalwert = 60.5
    ElseIf MaxWert >= 1000000 Then
       Skalwert = 55.5
    ElseIf MaxWert >= 100000 Then
       Skalwert = 45.5
    ElseIf MaxWert >= 10000 Then
       Skalwert = 40
    ElseIf MaxWert >= 1000 Then
       Skalwert = 37.5
    ElseIf MaxWert >= 100 Then
       Skalwert = 28.5
    ElseIf MaxWert >= 10 Then
       Skalwert = 24.5
    Else:
       Skalwert = 20
    End If
    
    RefWert = Round((296 * MaxWert / (296 - Skalwert)), 0)
Diesen neuer Referenzwert, habe ich dann als neuen Maximumwert der Skalierung festgelegt.
        End With
        'abschl. noch die neue Skalierung 
        .Chart.Axes(xlValue).MaximumScale = RefWert
    End With
Anbei noch die Datei zum ansehen, falls es interessiert.
https://www.herber.de/bbs/user/74365.xls
Gruß
Werner Brinkmann
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige