Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
264to268
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
264to268
264to268
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Balkendiagramm

Balkendiagramm
09.06.2003 10:18:51
Jörg Friese
Ich möchte ein Ranking in Form eines Balkendiagramms darstellen. Abhängig von den erreichten Ergebnissen sollen die Balken grün, gelb oder rot gefärbt sein. Die besten Ergebnisse (=grün) sollen oben dargestellt werden, die schlechtesten Ergebnisse (=rot) unten. Läßt sich die gewünschte Darstellung anhand einer vorgegebenen monatlichen Datentabelle per VBA erzeugen?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Balkendiagramm
09.06.2003 10:40:50
axel.meyer

hi jörg,

als ein guten morgen am anfang deines postings wäre kommunikativ gewesen.

das geht. die frage ist nur, was für eine farbe die ergebnisse zwischen drin haben sollen, also diejenigen, dié nicht beste oder schlechteste sind...

außerdem: hast du überhaupt schon erfahrung mit vba? wenn ich dir nämlich ein paar zeilen schreibe, ist es natürlich interessant, ob du die für deinen bedarf anpassen kannst, oder ob du deine tabelle entsprechend anpassen mußt...

gruß, axel


Re: Balkendiagramm
09.06.2003 11:09:26
andre

hallo jörg,
vba muss nicht unbedingt sein.
du kannst das über 3 hilfsspalten regeln, in die du per formel die daten klassifizierst. also meinetwegen in die erste spalte die besten, in die zweite die normalen und in die dritte die schlechtesten, über wenn oder min/max oder was es so alles gibt.
gruss andre

Anzeige
Re: Balkendiagramm
09.06.2003 11:11:56
Jörg

Sorry, Guten Morgen!

Die Datentabelle hat max. 40 Einträge, wobei mögliche 0%-Werte im Diagramm unterdrückt werden sollen.
Die Farbbereiche: rot: > 0 - < 85%, gelb: 85- < 90%, grün >= 90%

VBA-Grundkenntnisse habe ich, bislang allerdings kaum im Zusammenhang mit Diagrammen.

Vielen Dank im Voraus!

MfG
Jörg


Re: Balkendiagramm
09.06.2003 12:10:42
axel.meyer

hi jörg,

hier ein kleines programm. die tabellen-bereiche und auch titel-bezeichnung/achsenbeschriftung kannst du dir ja noch aus irgendwelchen zellen in variablen holen und einbinden.

ansonsten viel spaß beim anpassen und probieren.

gruß, axel



Anzeige
Re: Balkendiagramm
09.06.2003 12:54:45
L.Vira

Kleiner Hinweis:
Select und activate sind auch hierbei nicht erforderlich!

Re: Balkendiagramm
09.06.2003 14:11:14
Jörg

Hallo Axel,

es funktioniert. Allerdings besteht das Diagramm ja eigendlich bereits. Es wird aus der Datentabelle per Auswahlfeld für den jeweils ausgewählten Monat erstellt. Gibt es eine Möglichkeit, anhand eines vorhandenen Ranking-Diagramms die (waagerecht angeordneten!) Balken einzufärben?
Ein weiteres Problem: Die Anzahl der Datensätze ist zwar mit 40 konstant. Es kann aber durchaus vorkommen, dass in einem Monat für ein Team keine Daten vorhanden sind. Dann erhalte ich einen #DIV/0! oder #NV!-Fehler und der Max-Wert in Deinem Programm kann nicht ermittelt werden. Wenn derartige Zellen in der Datentabelle (stehen nach Sortierung immer am Schluss!) vorkommen, müßten Sie vom Programm "aussortiert" werden.

Vielen Dank im Voraus!

Gruss

Jörg




Anzeige
...ohne select? wie das denn?
09.06.2003 14:31:33
axel.meyer

hallo l.,

reißerisches betreff, was? nee, mal im ernst: sehe ja immer wieder beiträge von dir die richtig gut sind und lerne sehr gerne dazu. wie mache ich das denn:

ohne select?

gruß, axel


Re: Balkendiagramm
09.06.2003 14:38:39
axel.meyer

hallo jörg,

mein programm war eigentlich auch eher als denkanstoß gedacht. ich bin eigentlich auch noch ein ziemlicher anfänger. versuch mal selbst weiter zu kommen indem du den makrorekorder benutzt und mein programm etwas nachvollziehst. konkrete einzelfragen kann ich dir gerne noch beantworten aber das noch mal umzustricken, dafür ist mir das wetter zu schön.

kleine hilfe: klick mal auf eine säule, dann noch mal (kein doppelklick!) und dann mit der rechte maustaste. dann hast du das ganze untermenue um farben zu ändern. wenn du jetzt den makrorekorder anwirfst kannst du dir alle befehle (inklusive dem farbänderungsbefehl den ich gerade beschrieben habe) selbst zusammenstricken.

gruß, axel

Anzeige
Re: ...ohne select? wie das denn?
09.06.2003 16:18:07
L.Vira

Hallo,
ja, gelungener Betreff!

Mal ein Beispiel zu der Frage weiter oben ohne select, die
Prozentwerte habe ich nicht genauso genommen:

Sub Prozentstaffel()
Dim arrWerte As Variant, SC As Long, SCC As Long, B As Long
Dim pts As Points

SCC = ActiveSheet.ChartObjects(1).Chart.SeriesCollection.Count
For SC = 1 To SCC
arrWerte = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(SC).Values
Set pts = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(SC).Points
For B = LBound(arrWerte) To UBound(arrWerte)
If arrWerte(B) <= 0.5 Then
With pts(B).Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
ElseIf arrWerte(B) >= 0.9 Then
With pts(B).Interior
.ColorIndex = 14
.Pattern = xlSolid
End With
Else
With pts(B).Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
End If
Next
Next
End Sub

Gruß L.Vira


Anzeige
Ach ja....
09.06.2003 16:23:51
L.Vira

Deine Frage:

Option Explicit
Sub Bereich()
Dim Anz As Long, LZ As Long
LZ = [a2].End(xlDown).Row
Anz = Range("a2:a" & LZ).Rows.Count
MsgBox Anz
End Sub

Re: Balkendiagramm
09.06.2003 16:31:46
L.Vira

probiers mal so, da werden die entsprechenden Werte direkt aus
den SeriesCollection ausgelesen. Bei Nullwerten blende doch einfach die entsprechenden Spalten/Zeilen in der Tabelle aus.


Sub Prozentstaffel()
Dim arrWerte As Variant, SC As Long, SCC As Long, B As Long
Dim pts As Points

SCC = ActiveSheet.ChartObjects(1).Chart.SeriesCollection.Count
For SC = 1 To SCC
arrWerte = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(SC).Values
Set pts = ActiveSheet.ChartObjects(1).Chart.SeriesCollection(SC).Points
For B = LBound(arrWerte) To UBound(arrWerte)
If arrWerte(B) <= 0.5 Then
With pts(B).Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
ElseIf arrWerte(B) >= 0.9 Then
With pts(B).Interior
.ColorIndex = 14
.Pattern = xlSolid
End With
Else
With pts(B).Interior
.ColorIndex = 36
.Pattern = xlSolid
End With
End If
Next
Next
End Sub


Anzeige
thx! (oT)
09.06.2003 16:42:01
axel.meyer



Re: Balkendiagramm
09.06.2003 18:45:13
Jörg

Hallo L.Vira,
Hallo Axel,

vielen Dank für Eure Hinweise/Tipps. Die Lösung von L.Vira enthielt genau das Gesuchte. Hab' ne Menge dazugelernt. Nochmals "Danke"!

MfG

Jörg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige