Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

HILFE - Heatmap Farbverlauf

Forumthread: HILFE - Heatmap Farbverlauf

HILFE - Heatmap Farbverlauf
08.09.2006 06:55:57
Sonja
Hallo zusammen,
ich habe folgendes Problem. Ich möchte in Excel im Rahmen eines Projektplans eine Heatmap je Projekt angeben (je Zeile). Eine Heatmap zeigt den Projektzustand an. Es gibt folgende Zustände: grün, grün-gelb, gelb, gelb-rot, rot. Die Ausgabe soll in einem normalen Feld (Kästchen) in einer Spalte bzw. pro Projekt was ich anzeige je Zeile angezeigt werden. Die Farben grün, gelb und rot sind einfach. Bei grün-gelb und gelb-rot hätte ich gerne so Verläufe wie man sie in Powerpoint in einem z.B. Feld verlaufen lassen kann. In den neuen Excelversion geht das. In 2000 habe ich es nicht gefunden. Ziel sollte sein, dass man in dem Feld eine Auswahl an 5 Zustände in Worten wie gelb, grün erhält. Danach soll sich das Feld entsprechend färben. Vielleicht gibt es ja auch eine Lösung mit VBA in der Art, das man in Powerpoint 5 Bilder abspeichert und über Excel je nach Auswahl dann lädt.
Wäre toll wenn jemend eine Lösung parat hat. Falls es nicht geht, wie könnte ich die 5 Bilder via VBA nach Auswahl eines Textes laden ? Bitte um VBA code - Danke.
Danke im Voraus
Sonja
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: HILFE - Heatmap Farbverlauf
08.09.2006 08:27:58
Galenzo
Ich würde das ganze mit einem Diagramm lösen.
Dazu brauchst du eine Hilfstabelle. Für jede Farbe bzw. Farbverlauf eine einzelne Spalte.
Beispiel:
Zeile 1 sind die Überschriften: "Projekt","Grün","Grün-Gelb","Gelb","Gelb-Rot","Rot"
in Spalte A stehen die Projektzustände: "Grün" oder "Gelb" oder "Rot" usw. untereinander
in den Spalten B bis F stehen dann Formeln: z.B. in A2: =--($A2=B$1)
Damit wird der Wert in Spalte A mit der entsprechenden Überschrift verglichen und bei Übereinstimmung eine 1 eingetragen. Man erhält also eine Tabelle mit 0 und 1. In jeder Zeile kommt dabei genau einmal die 1 vor, der Rest ist 0.
Auf diese Tabelle setzt du nun ein gestapeltes Balkendiagramm mit 5 Datenreihen auf. Die Reihen sind jeweils eine der "Farb"-spalten. Du mußt nun nur noch die Diagrammreihen farblich entsprechend formatieren (evtl. mit Verlauf), das Diagramm neben die Spalte A schieben und die Diagrammgröße entsprechend den Zeilenhöhen anpassen.
Wäre das eine brauchbare Lösung?
/Galenzo
Anzeige
AW: HILFE - Heatmap Farbverlauf
08.09.2006 11:31:34
Sonja
Hallo,
vielen Dank für die Info. Sollte so gehen. Eine Beispieldatei hast Du nicht zufällig parat? ;-)))
Danke
Sonja
AW: HILFE - Heatmap Farbverlauf
08.09.2006 11:47:19
Galenzo
nö.
Solltest du aber nachbasteln können...
Bei Problemen kannst du ja nochmal nachfragen.
/Galenzo
AW: HILFE - Heatmap Farbverlauf
10.09.2006 22:19:43
EtoPHG
Hallo Sonja,
Füge folgende Code in ein Modul ein.
Jetzt kannst Du mit der Funktion =addHeatMap(HitzeNr, Zellenaddresse)
in einer Zelle bestimmen, wo ein ein Rechteck mit Deinen Farben gezeichnet werden soll, wobei: Hitzenummer 1-5 (grün bis rot) und Zelladresse wo das Rechteck gezeichnet werden soll.

Option Explicit
Public Function addHeatMap(iHeat As Integer, target As Range) As String
Dim sxTop, sxLeft, sxWidth, sxHeight As Double
Dim sShape As Shape
Dim bShapeExist As Boolean
Dim ixShape, ixColor1, ixColor2 As Integer
Application.Volatile
sxTop = target.Top
sxLeft = target.Left
For Each sShape In ActiveSheet.Shapes
ixShape = ixShape + 1
If sShape.Type = msoShapeRectangle And _
sShape.Top = sxTop And _
sShape.Left = sxLeft Then
bShapeExist = True
Exit For
End If
Next
sxHeight = target.RowHeight
sxWidth = target.Width
If bShapeExist Then ActiveSheet.Shapes(ixShape).Delete
ActiveSheet.Shapes.AddShape msoShapeRectangle, sxLeft, sxTop, sxWidth, sxHeight
ixShape = ActiveSheet.Shapes.Count
Select Case iHeat
Case 1
ixColor1 = 11
ixColor2 = 11
Case 2
ixColor1 = 13
ixColor2 = 11
Case 3
ixColor1 = 13
ixColor2 = 13
Case 4
ixColor1 = 10
ixColor2 = 13
Case 5
ixColor1 = 10
ixColor2 = 10
Case Else
addHeatMap = "Fehler Heat [1-5]"
End Select
ActiveSheet.Shapes(ixShape).Fill.ForeColor.SchemeColor = ixColor1
ActiveSheet.Shapes(ixShape).Fill.BackColor.SchemeColor = ixColor2
ActiveSheet.Shapes(ixShape).Fill.TwoColorGradient msoGradientVertical, 2
ActiveSheet.Shapes(ixShape).Line.Visible = msoFalse
addHeatMap = ""
End Function

Gruss Hansueli
Anzeige
Verbesserte Funktion HEATMAP
11.09.2006 10:00:02
EtoPHG
Hallo Sonja,
Hier eine etwas verbesserte Version.
Parameter 2 ist optional, d.h. wenn weggelassen, wird die Heatmap in der Zelle angezeigt, in der die Funktion aufgerufen wird (z.B. =addHeatMap(2)), andernfalls in der Zelle die in Parameter 2 angegeben wird (z.B. =addHeatMap(3;D9) zeigt die Heatmap in Zelle D9.
Die Überprüfung, ob schon eine Heatmap existiert ist effizienter. Die Heat-Maps passen sich automatisch der Zellengrösse an.
Public

Function addHeatMap(iHeat As Integer, Optional target As Range) As String
Dim sxTop, sxLeft, sxWidth, sxHeight As Double
Dim tShapeName As String
Dim sShape As Shape
Dim bShapeExist As Boolean
Dim ixShape, ixColor1, ixColor2 As Integer
On Error Resume Next
Application.Volatile
If target Is Nothing Then Set target = Application.Caller
tShapeName = "hMap" & target.Row & target.Column
sxTop = target.Top
sxLeft = target.Left
sxHeight = target.RowHeight
sxWidth = target.Width
Select Case iHeat
Case 1
ixColor1 = 11
ixColor2 = 11
Case 2
ixColor1 = 13
ixColor2 = 11
Case 3
ixColor1 = 13
ixColor2 = 13
Case 4
ixColor1 = 10
ixColor2 = 13
Case 5
ixColor1 = 10
ixColor2 = 10
Case Else
addHeatMap = "#HeatMap p1 [1-5]"
Exit Function
End Select
ActiveSheet.Shapes(tShapeName).Delete
ActiveSheet.Shapes.AddShape msoShapeRectangle, sxLeft, sxTop, sxWidth, sxHeight
ixShape = ActiveSheet.Shapes.Count
ActiveSheet.Shapes(ixShape).Name = tShapeName
ActiveSheet.Shapes(ixShape).Fill.ForeColor.SchemeColor = ixColor1
ActiveSheet.Shapes(ixShape).Fill.BackColor.SchemeColor = ixColor2
ActiveSheet.Shapes(ixShape).Fill.TwoColorGradient msoGradientVertical, 2
ActiveSheet.Shapes(ixShape).Line.Visible = msoFalse
ActiveSheet.Shapes(ixShape).Placement = xlMoveAndSize
addHeatMap = ""
End Function

Gruss Hansueli
Anzeige
AW: Definitive Funktion HEATMAP
11.09.2006 10:21:32
EtoPHG
Hallo zum Letzten,
Hier die definitive, aufgeräumte Funktion:
Public

Function addHeatMap(iHeat As Integer, Optional target As Range) As String
Dim tShapeName As String
Dim ixShape, ixColor1, ixColor2 As Integer
On Error Resume Next
Application.Volatile
If target Is Nothing Then Set target = Application.Caller
tShapeName = "hMap" & target.Row & target.Column
Select Case iHeat
Case 1
ixColor1 = 11: ixColor2 = 11
Case 2
ixColor1 = 13: ixColor2 = 11
Case 3
ixColor1 = 13: ixColor2 = 13
Case 4
ixColor1 = 10: ixColor2 = 13
Case 5
ixColor1 = 10: ixColor2 = 10
Case Else
addHeatMap = "#HeatMap p1 [1-5]": Exit Function
End Select
ActiveSheet.Shapes(tShapeName).Delete
ActiveSheet.Shapes.AddShape msoShapeRectangle, target.Left, target.Top, target.Width, target.RowHeight
ixShape = ActiveSheet.Shapes.Count
ActiveSheet.Shapes(ixShape).Name = tShapeName
ActiveSheet.Shapes(ixShape).Fill.ForeColor.SchemeColor = ixColor1
ActiveSheet.Shapes(ixShape).Fill.BackColor.SchemeColor = ixColor2
ActiveSheet.Shapes(ixShape).Fill.TwoColorGradient msoGradientVertical, 2
ActiveSheet.Shapes(ixShape).Line.Visible = msoFalse
ActiveSheet.Shapes(ixShape).Placement = xlMoveAndSize
addHeatMap = ""
End Function

Gruss Hansueli
Anzeige
;
Anzeige

Infobox / Tutorial

Heatmap Farbverlauf in Excel erstellen


Schritt-für-Schritt-Anleitung

  1. Hilfstabelle erstellen: Erstelle eine Tabelle mit den Zuständen in Spalte A (z.B. "Grün", "Gelb", "Rot", etc.) und den Farbverläufen in den Spalten B bis F:

    | Projekt    | Grün | Grün-Gelb | Gelb | Gelb-Rot | Rot |
    |------------|------|-----------|------|----------|-----|
    | Projekt 1  |      |           |      |          |     |
    | Projekt 2  |      |           |      |          |     |
  2. Formeln einfügen: In den Zellen B2 bis F2 fügst du die Formel ein, um die Farben zu bestimmen. Zum Beispiel in B2:

    =--($A2=B$1)

    Diese Formel vergleicht den Projektzustand in A2 mit den Überschriften.

  3. Gestapeltes Balkendiagramm erstellen: Markiere die Tabelle und füge ein gestapeltes Balkendiagramm hinzu. Formatieren anschließend die Diagrammreihen entsprechend den gewünschten Farben.

  4. Farben anpassen: Rechtsklicke auf die Diagrammreihe und wähle "Datenreihen formatieren". Hier kannst du die Farben anpassen, um die gewünschten Farbverläufe darzustellen.

  5. VBA zur Automatisierung: Wenn du mehr Kontrolle benötigst, kannst du ein VBA-Makro verwenden, um die Farben automatisch zu setzen. Füge den folgenden Code in ein neues Modul ein:

    Function addHeatMap(iHeat As Integer, Optional target As Range) As String
       ' Code hier einfügen
    End Function

Häufige Fehler und Lösungen

  • Diagramm zeigt keine Farben: Stelle sicher, dass die Daten korrekt eingegeben sind und die Diagrammtyp als "gestapelt" eingestellt ist.

  • VBA funktioniert nicht: Überprüfe, ob Makros in Excel aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" und aktiviere die Makros.

  • Farbverlauf sieht nicht gut aus: Passe die Diagrammhöhe und -breite an, um die Darstellung zu verbessern.


Alternative Methoden

Eine Alternative zur manuellen Erstellung einer Heatmap in Excel ist die Verwendung von PowerPoint. Du kannst dort die Heat Map erstellen und dann in Excel importieren. Verwende dafür den PowerPoint Text Farbverlauf, um mehr visuelle Effekte zu erzielen.


Praktische Beispiele

  • Projektstatus: Erstelle eine Heatmap, die den Status von verschiedenen Projekten darstellt. Zum Beispiel:

    | Projekt    | Status         |
    |------------|----------------|
    | Projekt 1  | Grün           |
    | Projekt 2  | Gelb           |
  • Verwendung von Bildern: Du kannst auch Bilder als Hintergründe verwenden, die den Status visuell darstellen. Dies kann mit VBA automatisiert werden, um je nach Auswahl das entsprechende Bild anzuzeigen.


Tipps für Profis

  • Nutze bedingte Formatierungen, um die Farben dynamisch zu ändern, je nach Wert in der Zelle.

  • Experimentiere mit verschiedenen Diagrammtypen, um die beste visuelle Darstellung für Deine Daten zu finden.

  • Überlege, wie Du die Heatmaps Excel in Präsentationen nutzen kannst, um Daten ansprechend zu visualisieren.


FAQ: Häufige Fragen

1. In welche Spalte gehört Gelb? Gelb gehört in die Spalte, die dem Zustand "Gelb" entspricht. In der Hilfstabelle wäre das Spalte D.

2. Kann ich die Heatmap auch in PowerPoint nutzen? Ja, Du kannst die Heatmap in PowerPoint erstellen und dann in Excel importieren oder verwenden, um dort die heat map powerpoint zu gestalten.

3. Welche Excel-Version benötige ich für Farbverläufe? Farbverläufe sind in den neueren Versionen von Excel verfügbar. Stelle sicher, dass Du eine Version ab Excel 2013 oder höher verwendest, um die gewünschten Effekte zu erzielen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige