Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1864to1868
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

Diagramm Balken in Pareto

Diagramm Balken in Pareto
21.01.2022 11:03:39
Arnulf
Guten Morgen,
ich möchte ein angezeigtes Diagramm (Säulen) per VBA in den Diagrammtyp Pareto ändern. Über das Excel Menü (Rechtklick auf Diagramm > Diagrammtyp ändern > Histogramm > Pareto funktioniert das tadellos. Es gelingt mit nicht, diesen Prozess mit VBA abzubilden. Makrorekorder hilft natürlich nicht weiter.
Die Datenquelle wird aus einem Blatt ausgelesen, der Bereich ist variabel.
Hier einmal der Code, der ein Balkendiagramm generiert:
##vintbaas, vinteaas sind variable, die linke und rechte Spalte eines Bereiches definieren
##bereich2 setzt den Range Datenbereich für das Diagramm aus Spalte und Zeilennummer zusammen
##spbs liefert den Spaltenbuchstaben

Public Function spbs(spaltenzahl As Integer) As String
spbs = Split(Cells(1, spaltenzahl).Address, "$")(1)
End Function
Dim sWks3 As String
Dim bereich2 as String
Worksheets(sWks3).Shapes.AddChart2(207, xlColumnClustered).Select
bereich2 = spbs(vintbaas) & "5:" & spbs(vinteaas) & "5," & spbs(vintbaas) & "50:" & spbs(vinteaas) & "50"
ActiveChart.SetSourceData Source:=Worksheets(sWks3).Range(bereich2)
ActiveChart.PlotBy = xlRows
Jeder Versuch mit Activechart.chartstype = 122 oder xlPareto scheitert. Weg über das Excelmenü funktioniert aber problemlos (mit 5 clicks)
Ziel: 1 click z. B. auf einen commandbutton
Wie kann ich den Weg über das Menü in Excel abkürzen und per VBA abbilden? Wechsel in Kreis- oder Balkendiagramm ist kein problem, das funktioniert mit ,chartstype
Ganz herzlichen Dank

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm Balken in Pareto
21.01.2022 14:29:26
Yal
Hallo Arnulf,
Pareto-Chart sind sog. Statistic Sharts. Diese sind in der Tat schwer zu fassen, da nich direkt als Chart, sondern als Unter-objekt eines OLEFormat eines Shapes
Um überhaupt an der Information ChartType xlPareto ("122") muss man ein ganz schöne Spagat machen:

Sub Makro4()
Dim S As Chart
Set S = Worksheets("Tabelle1").Shapes(1).OLEFormat.Object.ShapeRange.Chart
Debug.Print S.ChartType
End Sub
Es ist also ein komplett inkompatible Format zu den normalen Charts. Ich weiss auch nicht, wie einen ShapeRange in einem Object eines OLEFormat instanziert werden kann.
Was Du aber machen könntest, ist:
_ ein PivotChart auf deine Daten herstellen
_ die Reihenfolge der Daten absteigend vornehmen
_ die Wert in Datenbereich eine zweite mal reinbringen
_ die zweite Reihe in eine separaten Achsis
_ die zweite Reihe in Feldwerteinstellung "% laufende Summe in" umstellen
_ die zweite Reihe als LInie statt Balken
So hast Du einen Pivot Chart in Pareto-Stile.
Und alle Parameter sind per VBA greifbar.
VG
Yal
Anzeige
AW: Diagramm Balken in Pareto
22.01.2022 00:24:08
Arnulf
Vielen Dank, ich habe auch schon überlegt, mir ein Pareto Diagramm auf Umwegen zu erstellen.
Aber das fühlt sich halt nicht richtig an -:) Hat noch jemand eine Idee?
HG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige