Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1860to1864
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
Inhaltsverzeichnis

5 x 4 gefärbtes Säulendiagramm

5 x 4 gefärbtes Säulendiagramm
10.12.2021 17:05:05
Lionel
Hi zusammen,
das Ziel sind vier Diagramme (für jede der vier Spalten ein Diagramm) mit gestapelten Säulendiagrammen (jeweils 5 Elemente bzw. 5 Zellen), bei welchen sich die einzelnen Säulenelemente je nach Zellfarbe einfärben.
Für einen 4x4 Bereich funktioniert das, jedoch schaffe ich es nicht es anzupassen, damit 5 Zeilen in die Diagramme eingearbeitet werden.
Hier die Datei: https://www.herber.de/bbs/user/149745.xlsx
Der Code:

Sub Visualisierungs_Tool()
Dim Zeile As Integer, Spalte As Integer
Dim SearchDirection As Range
Dim Bereich As Range: Set Bereich = Worksheets("Tabelle1").Range("B5:E8")
'Set SearchDirection = xlPrevious
Application.ScreenUpdating = False
With Bereich
For Zeile = .Row To .Row + .Rows.Count - 1
For Spalte = .Column To .Column + .Columns.Count - 1
ActiveSheet.ChartObjects("Diagramm " & Spalte - .Column + 1).Activate
ActiveChart.FullSeriesCollection(Zeile - .Row - 1).Format.Fill.ForeColor.RGB = _
Worksheets("Tabelle1").Cells(Zeile, Spalte).DisplayFormat.Interior.Color
ActiveChart.Axes(xlValue).ReversePlotOrder = True
With ActiveChart
.HasTitle = False
.HasLegend = False
.HasDataTable = False
.HasDataTable = False
.AutoScaling = True
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory).AxisTitle.Text = Worksheets("Tabelle1").Cells(10, Spalte).Value
.Axes(xlValue, xlPrimary).MaximumScale = 25
.Axes(xlValue, xlPrimary).MinimumScale = 0
' ActiveChart.Axes(xlValue).ReversePlotOrder = False
End With
Next Spalte
Next Zeile
End With
End Sub
Vielen Lieben Dank im Voraus!
Beste Grüße
Lionel

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 5 x 4 gefärbtes Säulendiagramm
10.12.2021 17:28:57
Beverly
Hi Lionel,
deine Diagramme haben nur 4 Datenreihen - du musst also bei jedem Diagramm noch eine Datenreihe, und zwar Zeile 5, hinzufügen.
Den Button benötigst du nicht wenn du das Worksheet_Change-Ereignis verwendest - dann wird die Farbe der Teilsäule automatisch direkt bei Eingabe eines Wertes im Bereich B5:E10 angepasst. Dazu reicht folgender Code im Codemodul des Tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strFormel As String
Dim chrDia As ChartObject
Dim serReihe As Series
If Not Intersect(Target, Range("B5:E10")) Is Nothing Then
For Each chrDia In ActiveSheet.ChartObjects
For Each serReihe In chrDia.Chart.SeriesCollection
strFormel = Split(serReihe.Formula, ",")(2)
serReihe.Interior.Color = Range(strFormel).DisplayFormat.Interior.Color
Next serReihe
Next chrDia
End If
End Sub
Wenn die Diagramme einmal mit allen Elementen erstellt sind, musst du Reihenfolge, Maximum, Achsentitel usw. nicht jedesmal wieder neu anpassen.
https://www.herber.de/bbs/user/149746.xlsm

GrußformelBeverly's Excel - Inn
PS: ich erhalte leider keine Mailbenachrichtigung mehr über eingegangene Antworten in den Threads - deshalb kann es etwas dauern, bis ich auf Beiträge antworte.
Anzeige
AW: 5 x 4 gefärbtes Säulendiagramm
10.12.2021 17:49:03
Yal
Hallo Lionel,
Du sprichst von einem Makro, sendest aber eine "xlsx", spricht ohne Makro (wäre dann xlsm).
Wenn ich ein bissele Sarkastisch wäre: genau die Bestätigung von was ich immer über VBA sage: Super, bis irgendwas anders ist als bisher und dann steht man da vor einem Code, den man nicht versteht.
Es ist ist dabei nicht mal so kompliziert, Code zu lesen. zum Beispiel:

Dim Bereich As Range: Set Bereich = Worksheets("Tabelle1").Range("B5:E8")
heisst auf deutsch: man definiere eine Variable "Bereich" vom Typ Range (wenn Du wissen will, was Range bedeutet, einmal drauf klciekn und Strg+F1),
dann setzt man diese "Bereich" auf Tabelle1!B5:E8.
Schon hättest Du damit die Antwort zu deiner Frage: wenn der Bereich nicht mehr B5:E8 sondern B5:E9, reicht es schon diese "Adresse" zu ändern? Einfach auf eine Kopie probieren. Was soll da kaputt gehen.
Du musstest zuerst deinen Charts auf die jeweilige 5 Datenquellen richten (B5:B9, zurzeit B6:B9. Dito Spalten C bis E). Aber ich gehe Davon aus, dass es wegen der Reduzierung zur Beispieldatei geschuldet ist.
Dann irgendwo im Code gibt es einen

Zeile - .Row - 1
das fehlerhaft und in

Zeile - .Row + 1
geändert werden sollte.
VBA ist kein gedankenlesender Zauberstab sondern ein Drachen, den es zu zähmen gilt. Aber dann macht Drachenreiten echt Spass!
VG
Yal
Anzeige
AW: 5 x 4 gefärbtes Säulendiagramm
10.12.2021 22:08:20
Lionel
Hey Ihr beiden,
Oh man...was ein unnötiger Fehler, hatte gar nicht mehr an die Diagramme selbst gedacht:)
Vielen Dank für die alternative & schlanke Lösung, Beverly!
vielen Dank euch & ein schönes Wochenende!
Lionel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige