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

Diagramme farblich Normieren

Diagramme farblich Normieren
02.02.2007 08:04:05
David
Guten Morgen,
ich hab ein Problem und vielleicht kennt jemand eine gute Lösung dafür - aktuell hab ich überhaupt keinen Ansatzpunkt. Es sieht folgendermassen aus, ich soll mich um die Verkaufstatistik kümmern. In dieser gibt es jedemenge Zahlen und Diagramme, unteranderem auch verschiedene Diagramme welche die Performance der einzelnen Vertreter / der Gruppe / des Bereiches darstellt.
Jetzt ist es aber so das die Farben der Vertreter in jedem Diagramm von Excel automatisiert bestimmt werden. In Diagramm 1 hat Vertreter A z.B. die Farbe Rot, in Diagramm 2 Grün usw.
Die Anforderung ist aber das ein Vertreter durchgehend in jedem Diagramm die gleiche Farbe haben soll, für eine bessere "Wiedererkennung". Bisher wurde das ganze per Hand gemacht, was ich für ganz putzig halte aber nun soll ich das übernehmen. Da das viel Arbeit ist die jede Woche gemacht werden soll wollt ich mal fragen ob es nicht einen Weg gibt das ganze zu automatisieren. Also zu bestimmen das eine Farbe für einen bestimmten Vertreter verwendet wird.
Vielen Dank

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramme farblich Normieren
02.02.2007 09:19:01
Cardexperte
Hallo david,
alles was du händisch machen kannst, geht auch zu automatisieren. Für dieses Problem musst du dann auf ein Makro zurückgreifen und die Datenpunkte (oder Balöken,usw.) direkt ansprechen und eine Farbe zuweisen, hier mal ein Beispiel wo ich nach einem Kriterium die Farbe und auch die Größe von Datenpunkte entsprechend eines Kriteriums festlege, soll nur als Beispiel dienen (konkret für deinen Fall muss ich das Diagramm kennen und natürlich sollten die Kriterien immer die gleichen sein!
hier der Programmschnitzel:
'hier wird aus q1 die variable max abgefragt, zur steuerung des Durchlaufs der Schleife
Max = Sheets("Werte").Range("q1").Value
For i = 1 To 2
' hier beginnt die Schleife
For n = 1 To Max
'auswahl für das Kriterium zur Steuerung der Dicke der Punktsymbole aus Spalte e und der Laufvariablen
wahl = "n" & n + 1
krit = Sheets("Werte").Range(wahl).Value 'hier das Kriterium da muss dann dein Mitarbeitername rein, dies sollte in allen Tabellen gleich sein
If krit = 13 Then krit = 1 'gelb
If krit = 22 Then krit = 2 'graublau
If krit = 12 Then krit = 3 'lila
If krit = 11 Then krit = 4 'braun
If krit = 20 Then krit = 5 'grün
If krit = 24 Then krit = 6 'blau
If krit = 25 Then krit = 7 'kaki
If krit = 201 Then krit = 8 'rot
ActiveSheet.ChartObjects("Diagramm 25").Activate
ActiveChart.ChartArea.Select
On Error Resume Next
ActiveChart.SeriesCollection(i).Points(n).Select
'Steuerung der Farbe entsprechend der abgefragten Farbnummer aus Spalte n
Select Case krit
Case 1
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 6
.MarkerForegroundColorIndex = 6
End With
Case 2
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 47
.MarkerForegroundColorIndex = 47
End With
Case 3
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 5
.MarkerForegroundColorIndex = 7
End With
Case 4
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 30
.MarkerForegroundColorIndex = 30
End With
Case 5
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 4
.MarkerForegroundColorIndex = 4
End With
Case 6
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 5
.MarkerForegroundColorIndex = 5
End With
Case 7
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 12
.MarkerForegroundColorIndex = 12
End With
Case 8
With Selection.Border
.Weight = xlHairline
.LineStyle = xlNone
End With
With Selection
.MarkerStyle = xlCircle
.MarkerBackgroundColorIndex = 3
.MarkerForegroundColorIndex = 3
End With
End Select
' Ende der Auswahl
Next n
Next i
' hier endet die Schleife
Anzeige
AW: Diagramme farblich Normieren
02.02.2007 09:36:07
Heiko
Hallo David,
natürlich kann man das automatisieren, im Beispiel kannst du nachschauen wie.
Es bleibt dann die Frage zu klären woran man erkennt das eine Linie im Chart zu einem bestimmten Verkäufer gehört, aber diese Frage kann ich ohne die Datei zu kennen nicht beantworten.
https://www.herber.de/bbs/user/40088.xls
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Diagramme farblich Normieren
02.02.2007 09:46:29
Cardexperte
Hallo Heiko,
du hast Recht, nähere Festlegungen muss erst ein Beispiel geben,
dabei gibt es einige Probleme zu lösen:
1. ansprechen des aktuellen Diagramms, denn Diagrammname kann immer anders sein, besser man wählt das Diagramm erst aus und lässt dann das Makro zum Einfärben laufen
2. was passiert, wenn ein Mitarbeiter nicht vorhanden ist, da muss dann noch eine Fehlerroutine rein, sonst kommen die Farben alle durcheinander
Gruss WS
Anzeige
AW: Diagramme farblich Normieren
02.02.2007 14:15:12
David
Erstmal danke für die Antworten. Das ganze als Beispiel darzustellen ist etwas problematisch. Die gesamte Datei beinhaltet über 80 Blätter und hat verschiedenste Inhalte und Darstellungen. So gibt es Diagramme die nicht verändert werden dürfen und eben welche die bearbeitet werden müssen, manche Seiten haben nur ein Diagramm andere dutzende. Manche der Diagramme sind Linien andere Kreis, einige werden innerhalb des Dokuments ermittelt andere werden z.B. durch Reporttools ermittelt und in der Datei abgelegt. Eben ein typisch historisch geweachsenen F.... was ansich ja damals nur als "Übergangslösung" entwickelt wurde.
Hab jetzt folgendes gemacht, es gibt ne extra Tabelle in den die Farbzuordnungen stehen.

Sub test()
chartName = Application.InputBox("DiagrammName")
If chartName = False Then
Exit Sub
End If
ActiveSheet.ChartObjects(chartName).Activate
For n = 1 To ActiveChart.SeriesCollection(1).Points.count
ActiveChart.SeriesCollection(1).Points(n).Select
Set cCt = Sheets("ColorControlTable")
rowMax = cCt.Range("A65536").End(xlUp).Row
Dim bID As String
bID = Left(ActiveChart.SeriesCollection(1).Points(n).DataLabel.Text, 3)
For i = 2 To rowMax
If bID = cCt.Cells(i, 1).Value Then
ActiveChart.Legend.LegendEntries(n).LegendKey.Interior.ColorIndex = cCt.Cells(i, 2).Interior.ColorIndex
Exit For
End If
Next i
Next n
End Sub

Das ganze gefällt mir persönlich noch nicht ganz ist auch noch nicht sauber, muss mal schauen wie ich es am ende mache
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige