Thema Datum  Von Nutzer Rating
Antwort
03.03.2009 15:20:49 Nelly
NotSolved
03.03.2009 17:40:37 Holger
NotSolved
03.03.2009 17:57:23 Nelly
NotSolved
Blau Aw:Aw:Aw:Array mittles variable abteilen
04.03.2009 11:25:39 Holger
NotSolved
04.03.2009 11:50:10 Nelly
NotSolved
04.03.2009 15:50:50 Nelly
NotSolved
05.03.2009 11:17:47 Holger
NotSolved
04.03.2009 14:29:42 Nelly
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
04.03.2009 11:25:39
Views:
1020
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Array mittles variable abteilen
Hallo Nelly,
sieh dir mal in der VBA-Hilfe die Erläuterungen zur For...Next-Anweisung und Array-Funktion an!
Du hat dein Array sortiert und als Chart dargestellt. Die Unterteilung erfolgt nicht, indem du den Inhalt der Array-Variablen verwendest, sondern den Index. Du willst doch z.B. die ersten vier Zahlen in einer Frabgruppe darstellen. Das sind die Indizes 0, 1, 2, und 3. Die Werte von Arr(0), Arr(1), Arr(2) und Arr(3) sind doch bereits die Längen deiner Balken in der Chart.
Ich habe dir noch einzelne Indizes im Makro angepasst, damit es ohne weitere Änderungen lauffähig ist.

variable = 4
zahl = 20
ReDim Farbe(Int((zahl - 1) / variable))
Farbe(0) = 3
Farbe(1) = 43
Farbe(2) = 4 'in deinen Colorindex -Wunsch ändern
Farbe(3) = 5 'in deinen Colorindex -Wunsch ändern
Farbe(4) = 6 'in deinen Colorindex -Wunsch ändern
'... ergänzen, falls Zahl größer als 20
For j = 1 To zahl Step variable
For k = 0 To 3
If j + k größer zahl Then Exit For 'durch das Größerzeichen ersetzen
ActiveChart.SeriesCollection(1).Points(j + k).Select
Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=2, _
Degree:=0.231372549019608
With Selection
.Fill.Visible = True
.Fill.ForeColor.SchemeColor = Farbe(Int((j - 1) / variable))
'oder einfach .Fill.ForeColor.SchemeColor =Int((j - 1) / variable)+3
End With
Next k
Next j
Gruß
Holger



Nelly schrieb am 03.03.2009 17:57:23:

Hallo Holger!

Danke erstmal für deine Hilfe.

Hmm, ich bin draufgekommen, dass wenn ich das so mache, hat das ganze nichts mit meinem sortiertem Array zu tun. ich möchte ja das array als hilfe heranziehen. eben ein absteigend sortiertes array, und dann je nach eingabe der variable(in meinem fall =4), das array "abteilen". sprich in 4er schritten die einfärbung vornehmen.
Das heißt ich müsste auf mein array zugreifen. sprich rot wäre von arr(0) bis arr(3), orange arr(4)-(7), usw.

nur fori=arr(0) to arr(zahl) step variable
funktioniert nicht, geht gar nicht mal in die schleife rein...

weißt du vlt wie das funktionieren könnte??

lg Nelly



Holger schrieb am 03.03.2009 17:40:37:

Hallo Nelly,
wenn variable größer als 1 ist, nimmt J nie den Wert 2 an, da wegen For J = 1 To zahl Step variable die Zahlen 1, 1+variable, 1+variable+variable usw. durchlaufen werden. Also wird der Case 2 nicht angesprungen.
Versuche mal folgenden Ansatz:
redim Farbe(4)
Farbe(0)=3
Farbe(1)=43
...
For J = 1 To zahl Step variable
For k = 1 To 4
ActiveChart.SeriesCollection(1).Points(k).Select
Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=2, _
Degree:=0.231372549019608

With Selection
.Fill.Visible = True
.Fill.ForeColor.SchemeColor = farbe(j)
End With
Next k
next j

Ob dein Code zur Einfärbung funktioniert, habe ich nicht weiter geprüft.
Gruß
Holger



Nelly schrieb am 03.03.2009 15:20:49:

Halli Hallo, ich wäre auf eure Hilfe angewiesen und zwar:
hab die Daten aus meiner Tabelle in ein Array gespeichert, dieses dann soriert, und auch die Länge ausgegeben. Nun habe ich ein absteigend sortiertes Array, diese Werte befinden sich allerdings in einem Chart. Ich möchte nun mein Chart mit 5 Fraben einfärben, Grün(0-20%), hellgrün(20-40%), gelb(40-60%), orange(60-80%), rot(80-100%).
habe mir das so vorgestellt, dass man mit einer Variablen sagt, wann die nächste Farbe dran ist. zB. 20 Balken, variable=4 --> die ersten 4 sind grün, nächsten 4 hellgrün usw.

variable = 4
For J = 1 To zahl Step variable
Select Case (J)
Case 1
For k = 1 To 4

ActiveChart.SeriesCollection(1).Points(k).Select

Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=2, _
Degree:=0.231372549019608

With Selection
.Fill.Visible = True
.Fill.ForeColor.SchemeColor = 3
End With
Next k

Case 2
For u = 4 To 8
ActiveChart.SeriesCollection(1).Points(u).Select

Selection.Fill.OneColorGradient Style:=msoGradientHorizontal, Variant:=2, _
Degree:=0.231372549019608

With Selection
.Fill.Visible = True
.Fill.ForeColor.SchemeColor = 43
End With
Next u

End Select
Next



nur leider springt dieser nicht in die nächsten case, case 2, case 3, ... bzw. glaub ich auch dass dies nicht der richtige Ansatz ist, wäre echt dankbar, wenn mir jemand helfen könnte!!!!

Vielen Dank, lG Nelly

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
03.03.2009 15:20:49 Nelly
NotSolved
03.03.2009 17:40:37 Holger
NotSolved
03.03.2009 17:57:23 Nelly
NotSolved
Blau Aw:Aw:Aw:Array mittles variable abteilen
04.03.2009 11:25:39 Holger
NotSolved
04.03.2009 11:50:10 Nelly
NotSolved
04.03.2009 15:50:50 Nelly
NotSolved
05.03.2009 11:17:47 Holger
NotSolved
04.03.2009 14:29:42 Nelly
NotSolved