Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
948to952
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
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagrammbalken färben

Diagrammbalken färben
07.02.2008 13:44:06
Christian
Hallo,
bin bei der Online-Suche auf Euer Forum gestoßen und hoffe ihr könnt mir helfen.
Ich habe ein gestapeltes Diagramm.
Auf der Y-Achse werden Monate dargestellt (Jan bis Dez).
Ich bräuchte nun ein Makro das folgendes macht:
Für Januar bis Dezember jeweils eine Zelle in einem anderen sheet der gleichen Mappe ansteuern,
dort gucken welcher Wert in der Zelle für den Monat steht und dann denn oberen Balken anders einfärben.
Ich möchte damit eine Art Ampelfunktion darstellen. Es sind drei Balken übereinander, damit kann ich rot, gelb und grün anzeigen. Der Rote soll allerdings in Abhängikeit dieses zusätzlichen Prüfwertes in der anderen Tabelle zunächst orange sein.
Klasse wäre ein Makro mit einigen Erklärungen, ich möchte auch verstehen was da vor sich geht, bzw. einen Anfang in VBA-Programmierung finden.
Ich habe es hoffentlich nicht zu kompliziert umschrieben. ;0)
Vorab Danke!
Christian

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagrammbalken färben
07.02.2008 14:08:39
Beverly
Hi Christian,
schau mal auf meine HP, Seite "Diagramme m. VBA". Dort findest du das Beispiel "Säulen einfärben". Da werden zwar die Beschriftungslabel ausgelesen, aber das kann man genau so mit Werten aus einem Tabellenblatt machen. Vielleicht kannst du das als Ansatz nehmen.
Link zur Datei


AW: Diagrammbalken färben
07.02.2008 14:21:00
Christian
Hallo Beverly,
Du wirst jetzt mindestens grinsen:
Deine HP mit dem Beispiel habe ich bereits letzte Woche entdeckt.
Ich habe auch versucht das darin enthaltene Makro entsprechend anzupassen.
Da ich aber von VBA praktisch keine Ahnung habe ist es mir natürlich nicht gelungen.
Hoffe auf weitere Hilfe ;0)

Anzeige
AW: Diagrammbalken färben
07.02.2008 14:24:00
Beverly
Hi Christian,
lade deine Arbeitsmappe doch mal hoch, da ist es einfacher, den Code an deine Bedingungen anzupassen.


AW: Diagrammbalken färben
07.02.2008 14:39:00
Christian
Das geht leider nicht.
Wenn ich die Original-Mappe mit Inhalt hochlade und das einer mitbekommt kann ich meinen Schreibtisch räumen.
Ich Versuche einen Dummy zu erstellen und den dann hoch zuladen.
Danke für das Angebot!

AW: Diagrammbalken färben
07.02.2008 14:59:21
Christian
Here we go ;0)
Das Makro soll in das sheet "Prüffeld" im Januar nachgucken ob -1 oder eine 1 vornhanden ist und dann den obersten roten Balken (sofern in dem Monat vorhanden) bei -1 rot färben und bei 1 orange einfärben. Dann zum Februar, zum März....
Danke!

Anzeige
AW: Diagrammbalken färben
07.02.2008 15:01:41
Christian
Here we go ;0)
Das Makro soll in das sheet "Prüffeld" im Januar nachgucken ob -1 oder eine 1 vornhanden ist und dann den obersten roten Balken (sofern in dem Monat vorhanden) bei -1 rot färben und bei 1 orange einfärben. Dann zum Februar, zum März....
Danke!
Sorry, das file vergessen ;o) :https://www.herber.de/bbs/user/49709.xls

AW: Diagrammbalken färben
07.02.2008 16:05:00
Beverly
Hi Christian,

Sub datenpunkte_faerben()
Dim chDiagramm As Chart
Dim inPunkt As Integer
Set chDiagramm = Worksheets("Chart 2008").ChartObjects(1).Chart
With chDiagramm
For inPunkt = 1 To .SeriesCollection(3).Points.Count
If Worksheets("Prüffeld").Cells(12, inPunkt + 1) = -1 Then
.SeriesCollection(3).Points(inPunkt).Fill.ForeColor.SchemeColor = 3
Else
.SeriesCollection(3).Points(inPunkt).Fill.ForeColor.SchemeColor = 46
End If
Next inPunkt
End With
Set chDiagramm = Nothing
End Sub




Anzeige
AW: Diagrammbalken färben
07.02.2008 16:20:59
Christian
Hallo Beverly,
whow das ging ja fix. Thumbs up!!!
Einbauen kann ich es erst morgen früh.
Ich habe aber vorab noch ein paar ergänzende Fragen, ich möchte bei der ganzen Sache ja auch was lernen.
Oben werden zwei Variable gesetzt die einmal das Diagramm und dann die Zählschleife der Datenpunkte aufnehmen.
Soweit richtig verstanden?
Dann steuerst Du das sheet "Prüffeld" an, und ich steig an der Stelle aus ;0).
Mir fehlt der "Durchblick" wie und warum innerhalb der Schleife von Monat zu Monat im Sheet"Prüffeld"
gesprungen wird um die einzelnen Monate im Diagramm zu überprüfen.
Könntest Du mir das bitte erklären bzw. begreiflich machen?
Danke & Gruß Christian

Anzeige
AW: Diagrammbalken färben
07.02.2008 17:06:00
Beverly
Hi Christian,
hier der Code noch einmal mit einigen Kommentaren, vielleicht wird da einiges klarer

Sub datenpunkte_faerben()
Dim chDiagramm As Chart ' Variable für das Diagramm als Objekt
Dim inPunkt As Integer  ' Schleifenzähler für Datenpunkte und Spaltennummer in "Prüffeld"
' Diagrammobjekt 1 des Tabellenblattes Chart 2008 auf die Variable schreiben
Set chDiagramm = Worksheets("Chart 2008").ChartObjects(1).Chart
' alles bezieht sich auf das Diagrammobjekt
With chDiagramm
' Schleife über alle Punkte der 3. Datenreihe
For inPunkt = 1 To .SeriesCollection(3).Points.Count
' inPunkt wird gleichzeitig als Spaltennummer verwendet, um im
' Tabellenblatt "Püffeld" in den Spalten B (2) bis M (12)
' der Zeile 12 zu prüfen, welcher Wert drin steht;
' steht -1 wird die Säule Rot gefärbt, andernfalls Orange
If Worksheets("Prüffeld").Cells(12, inPunkt + 1) = -1 Then
.SeriesCollection(3).Points(inPunkt).Fill.ForeColor.SchemeColor = 3
Else
.SeriesCollection(3).Points(inPunkt).Fill.ForeColor.SchemeColor = 46
End If
Next inPunkt
End With
' Variable leeren
Set chDiagramm = Nothing
End Sub




Anzeige
AW: Diagrammbalken färben
07.02.2008 17:18:00
Christian
Das ist mit Abstand die verständlichste Hilfe die ich bisher zu irgendeinem Thema in einem Forum erhalten habe!
Danke & Gruß Christian

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige