mschart- Größenverhältnis

13/09/2008 - 14:11 von Jürgen Schmitt | Report spam
Hallo NG,
vllt. kann mir jemand einen Tip geben.
Ein Chart enthàlt 3 Zeilen mit je ca. 50 Spalten.
Zeile 1 enthàlt 2 Datenwerte <> 0
Zeile 2 enthàlt 10 Datenwerte <> 0
Zeile 3 enthàlt 50 Datenwerte <> 0

Im Modus 'VtChChartType2dPie' wird der Kreis 1, also die
1. Zeile sehr sehr klein dargestellt.
Zeile 2 wird ca. 5x größer als Zeile 1 dargestellt, enthàlt ja auch
5x mehr Datenelemente <> 0.
Zeile 3 wiederum 5x größer als Zeile 2.

Beispiel:
Option Explicit
Dim chartArr(1 To 3, 1 To 50) As Byte '3 Zeilen (Kreis), 50 Spalten
Dim i As Byte, j As Byte

Private Sub Test()
'Array Füllen
For i = 1 To 50 '1. Zeile (Kreis) mit 2 Elementen <> 0
chartArr(1, i) = 0
If i Mod 25 = 0 Then chartArr(1, i) = Int((30 * Rnd) + 1)
Next
For i = 1 To 50 '2. Zeile (Kreis) mit 10 Elementen <> 0
If i Mod 5 = 0 Then chartArr(2, i) = Int((30 * Rnd) + 1)
Next
For i = 1 To 50 '3. Zeile (Kreis) mit 50 Elementen <> 0
chartArr(3, i) = Int((30 * Rnd) + 1)
Next

With MSChart1
.Width = 9000
.Height = 6000
.chartType = VtChChartType2dPie
.ShowLegend = True

.RowCount = 3 '3 Zeilen = 3 Torten
.ColumnCount = 50 '30 Spalten
For i = 1 To 50: .Column = i: .ColumnLabel = Format(i, "##0"): Next

'Zuweisung der einzelnen Zeilen (Torten)
For i = 1 To .RowCount
.Row = i
For j = 1 To .ColumnCount 'Spalten
.Column = j
.Data = chartArr(i, j)
Next
Next
End With

End Sub

Wie kann man jetzt erreichen, dass alle Kreise des Diagramms in gleicher
Größe dargestellt werden. Im Modus 'VtChChartType2dBar' wird ja auch
alles maßstabsgetreu korrekt dargestellt.

Und zwei weitere Fragen.
Wie kann man die Farbgebung der einzelnen Balken (Kreissegmente) selbst
bestimmen. Wollte wichtige Daten mit kràftigen und weniger interessante
mehr in blassen Tönen darstellen.

Des weiteren wollte ich die Position der Kreise im Diagramm selbst
bestimmen. Ist das überhaupt möglich ?

Vielen Dank
gruss
 

Lesen sie die antworten

#1 Wilfried Dietrich
15/09/2008 - 10:56 | Warnen spam
Hallo Jürgen,

ich vermute mal du meinst sowas wie:
MSChart1.Plot.Weighting.Basis = VtChPieWeightBasisSeries

MfG.
Wilfried

Ähnliche fragen