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

Forumthread: bedingte Formatierung mit mehr als 3 Farben

bedingte Formatierung mit mehr als 3 Farben
13.09.2006 11:30:31
Benben
hallo, zusammen
ich habe ein Makro wie "Bedingte Formatierung mit mehr als drei Farben" geschrieben. Wie z,B. wenn in "A1"=1 und "B1"=A then "C1" rot werden, wenn in "A1"=1 und "B1"=B then "C1" gelb werden,usw. Im "A" kann man "A" bis "F" eingeben, und in "B" kann man "1" bis "4" eingeben, dann werden "C" verschiedene Farbe werden.
Aber wieso meine Programm kann nicht richtig funktionieren? Wenn "A" und "B" eingegebn, verändert "C" gar nicht.
Könnten Sie mir helfen?
--------------------------------------------------------------------------

Private Sub RisikoAnalyse()
Dim Eintretenswahr As Range
Dim Gefahr As Range
Dim Bereich1 As Range
Set Bereich1 = Range("L156:L221")
Set Bereich2 = Range("K156:K221")
For Each Eintretenswahr In Bereich1
If Not Intersect(Eintretenswahr, Bereich1) Is Nothing Then
Select Case Eintretenswahr.Value
Case "A"     'Häufig
For Each Gefahr In Bereich2
If Not Intersect(Gefahr, Bereich2) Is Nothing Then
Select Case Gefahr.Value
Case "1"
ActiveCell.Offset(0, 1).Interior.ColorIndex = 3
Case "2"
ActiveCell.Offset(0, 1).Interior.ColorIndex = 3
End Select
End If
Next Gefahr
End Select
End If
Next Eintretenswahr
Set Bereich1 = Nothing
Set Bereich2 = Nothing
End Sub

-----------------------------------------------------------------------------
Dank sehr!
Benben
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: bedingte Formatierung mit mehr als 3 Farben
13.09.2006 13:04:50
ede
hallo benben,
du solltes mal den bereich1 und bereich2 anpassen und dann
beim einfärben der zellen die richtige zelle benutzen, nicht die
gerade actvive selectierte zelle + 1 spalte.
gruss
AW: bedingte Formatierung mit mehr als 3 Farben
13.09.2006 13:40:02
Reinhard
Hi Benben,
in Tabelle2 nachfolgende Tabelle anlegen, Code ins Dokumentmodul von Tabelle1
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L156:L221")) Is Nothing Or Not Intersect(Target, Range("K156:K221")) Is Nothing Then
If Target.Column = 11 And Target.Offset(0, 1) = "" Then Exit Sub
If Target.Column = 12 And Target.Offset(0, -1) = "" Then Exit Sub
Dim Farbe As Byte
Farbe = Application.WorksheetFunction.VLookup(Cells(Target.Row, 12) & Cells(Target.Row, 11), Worksheets("Tabelle2").Range("A1:B24"), 2, 0)
Cells(Target.Row, 13).Interior.ColorIndex = Farbe
End If
End Sub

Tabellenblattname: Tabelle2
A    B
1  A1    3
2  A2    4
3  A3    5
4  A4    6
5  B1    7
6  B2    8
7  B3    9
8  B4   10
9  C1   11
10  C2   12
11  C3   13
12  C4   14
13  D1   15
14  D2   16
15  D3   17
16  D4   18
17  E1   19
18  E2   20
19  E3   21
20  E4   22
21  F1   23
22  F2   24
23  F3   25
24  F4   26

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: bedingte Formatierung mit mehr als 3 Farben
14.09.2006 12:31:35
Benben
hallo,Reinhard
vielen dank für deine Hlife.
Die Makro funktioniert, aber wenn ich die alte Einträge löschen will, dann erscheint die Fehlermeldung. Dann kann ich nur "On Error Resume Next" ergänzen.
mfg
Benben
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bedingte Formatierung mit mehr als 3 Farben in Excel


Schritt-für-Schritt-Anleitung

  1. Tabelle vorbereiten: Erstelle eine Tabelle, in der du die Werte für die bedingte Formatierung festlegst. In diesem Beispiel verwenden wir die Spalten "A" und "B" für die Eingabe und "C" für die Ausgabe der farbigen Zellen.

  2. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
    • Füge einen neuen Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Private Sub RisikoAnalyse()
       Dim Eintretenswahr As Range
       Dim Gefahr As Range
       Dim Bereich1 As Range
       Dim Bereich2 As Range
       Set Bereich1 = Range("L156:L221")
       Set Bereich2 = Range("K156:K221")
    
       For Each Eintretenswahr In Bereich1
           If Not Intersect(Eintretenswahr, Bereich1) Is Nothing Then
               Select Case Eintretenswahr.Value
                   Case "A"
                       For Each Gefahr In Bereich2
                           If Not Intersect(Gefahr, Bereich2) Is Nothing Then
                               Select Case Gefahr.Value
                                   Case "1"
                                       Cells(Eintretenswahr.Row, 3).Interior.ColorIndex = 3 ' Rot
                                   Case "2"
                                       Cells(Eintretenswahr.Row, 3).Interior.ColorIndex = 6 ' Gelb
                               End Select
                           End If
                       Next Gefahr
               End Select
           End If
       Next Eintretenswahr
       Set Bereich1 = Nothing
       Set Bereich2 = Nothing
    End Sub
  4. Tabelle für VLOOKUP erstellen: Lege eine weitere Tabelle (Tabelle2) an, die die Zuordnung von Eingabewerten zu Farben enthält. Diese Daten werden für die VLOOKUP-Funktion im Code verwendet.

  5. Ereignisprozedur hinzufügen: Um die bedingte Formatierung zu aktivieren, füge den folgenden Code in das Dokumentmodul von Tabelle1 ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("L156:L221")) Is Nothing Or Not Intersect(Target, Range("K156:K221")) Is Nothing Then
           If Target.Column = 11 And Target.Offset(0, 1) = "" Then Exit Sub
           If Target.Column = 12 And Target.Offset(0, -1) = "" Then Exit Sub
           Dim Farbe As Byte
           Farbe = Application.WorksheetFunction.VLookup(Cells(Target.Row, 12) & Cells(Target.Row, 11), Worksheets("Tabelle2").Range("A1:B24"), 2, 0)
           Cells(Target.Row, 13).Interior.ColorIndex = Farbe
       End If
    End Sub
  6. Testen: Gebe Werte in die Spalten "A" und "B" ein, um die bedingte Formatierung in "C" zu testen.


Häufige Fehler und Lösungen

  • Fehler: C wird nicht gefärbt: Stelle sicher, dass die Bereiche in deinem Code korrekt definiert sind und die Werte in den Zellen "A" und "B" vorhanden sind.
  • Lösung für Fehlermeldungen beim Löschen: Füge On Error Resume Next vor dem Code hinzu, um Fehler zu ignorieren, wenn alte Einträge gelöscht werden.

Alternative Methoden

Eine alternative Methode zur bedingten Formatierung mit mehr als 3 Farben besteht darin, die integrierte Funktion "Bedingte Formatierung" in Excel zu verwenden. Du kannst eine Farbskala erstellen, die automatisch die Farben basierend auf den Werten anpasst. Um zusätzliche Farben in einer Farbskala zu verwenden, gehe zu:

  1. Markiere die Zellen, die du formatieren möchtest.
  2. Klicke im Menü auf "Start" > "Bedingte Formatierung" > "Farbskalen" und wähle die gewünschte Farbskala aus.

Praktische Beispiele

Ein praktisches Beispiel könnte eine Übersicht über Risiken in einem Projekt sein, wo die Spalten "A" und "B" mögliche Risiken und deren Eintrittswahrscheinlichkeit darstellen. Die bedingte Formatierung in der Spalte "C" zeigt dann visuell an, welche Risiken kritisch sind.


Tipps für Profis

  • Benutze benannte Bereiche: Erstelle benannte Bereiche für deine Eingabewerte, um den Code lesbarer zu gestalten.
  • Verschachtelte Bedingungen: Nutze verschachtelte If-Anweisungen für komplexere Bedingungsprüfungen.
  • Debugging: Verwende Debug.Print, um Werte während der Ausführung anzuzeigen und Probleme schneller zu identifizieren.

FAQ: Häufige Fragen

1. Kann ich mehr als 3 Farben für die bedingte Formatierung verwenden? Ja, du kannst zusätzliche Farben in Excel verwenden, indem du die VLOOKUP-Funktion und benutzerdefinierte Farbzuordnungen in deinem VBA-Code anwendest.

2. Wie kann ich die Farbwerte ändern? Ändere die ColorIndex-Werte im VBA-Code, um die gewünschten Farben für die bedingte Formatierung zu verwenden.

3. Funktioniert dies in allen Excel-Versionen? Der VBA-Code sollte in den meisten modernen Excel-Versionen (2010 und später) funktionieren. Achte darauf, dass die Benutzerberechtigungen für Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige