Excel: Bedingte Formatierung mit VBA

KOBunghole

Grünschnabel
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:

vbaproblemdb9.jpg


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
 
Visual Basic:
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!
 
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?
 
Zeile und Spalte habe ich mal nur als Platzhalter eingetragen.

Du könntest auch direkt
Visual Basic:
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
Visual Basic:
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.
 

Neue Beiträge

Zurück