# Excel: Bedingte Formatierung mit VBA



## KOBunghole (3. September 2008)

Hallo liebe Helfer! 

Ich weiß, es gibt 1000 Threads zu der mehr als 3 bedingte Formatierung-Problemstellung aber ich habe nichts zu meinem spezifischen Problem gefunden, bzw sind meine VBA Kentnisse zu gering, als dass ich die "bekannten" Lösungen für mich umwurschteln könnte  

Denn die meisten Lösungen sagen, wie man über die Case Methode Felder aufgrund ihres Inhalts formatiert. 

Ich hingegen will Felder aufgrund des Inhalts anderer Zellen formatieren: 







So soll das ganze dann mal aussehen. 

Mit der normalen bedingten Formatierung geht das super, aber eben nur bis zu 3 verschiedene Farben, über bedingte Formatierung in C2: 
=wenn(und($A2=a;(C$10-$B2)<0);0;1) => hellgrün ausfüllen 
=wenn(und($A2=b;(C$10-$B2)<0);0;1) => orange ausfüllen..... 

Dann mit Fill Down und Fill Right auf die Restlichen Zellen anwenden und gut ist... 

Nur in VBA hab ich nicht den blassesten wie ich diese Funktionalität bewerkstelligen soll... :/ 

Für sämtliche Tipps und Codestücke bin ich super dankbar 

Viele Grüße 
Bunghole


----------



## Zvoni (3. September 2008)

```
If Tabelle1.Cells(Zeile,Spalte)="a" And Tabelle1.Range("C10")-Tabelle1.Range("B2")<0 Then

Tabelle1.Range("D2:G2").Interior.Color=vbGreen 'bzw. den Farbwert ermitteln

End If
```

Ungetestet. Alles aus dem hohlen Bauch heraus!


----------



## KOBunghole (3. September 2008)

Danke schonmal! Aber was kommt da bei Zeile und Spalte rein?

Sind das Variablennamen, und wenn ja, wo und wie definier ich sie?

Und wie bau ich die Entsprechende Schleife, dass deine Methode auch alle Zeilen behandelt?


----------



## Zvoni (3. September 2008)

Zeile und Spalte habe ich mal nur als Platzhalter eingetragen.

Du könntest auch direkt

```
Tabelle1.Cells(2,1)
'oder
Tabelle1.Range("A2")
```
schreiben. Beide Schreibweisen beziehen sich auf "A2".

Wenn das ganze dynamisch laufen soll, dann am Besten per Schleife

```
For Zeile=2 To 9

    If Tabelle1.Cells(Zeile,1)="a" Then
        'usw.
    End If

Next
```
In gezeigtem Beispiel werden alle Zellen zwischen "A2" und "A9" durchlaufen.

Der Rest (Zuordnung einer Farbe zu Zellen bzw. Differenz zwischen 2 Zellen usw.) ist reine Mathematik.


----------

