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

Forumthread: Farbskale pro Zeile für sehr viele Zeilen

Farbskale pro Zeile für sehr viele Zeilen
13.10.2020 16:53:32
Michi

Hallo zusammen,
ich bin ganz neu hier aber hoffe, dass ihr mir vielleicht trotzdem helfen könntet. Ich habe fast keine VBA-Erfahrung, daher tu ich mir ein wenig schwerer. Habe schon wirklich lange nach einer Lösung gesucht, aber keine hat bei mir bisher funktioniert.
Folgende Voraussetzungen/Ziele habe ich:
- Pro Zeile 5 Werte (nicht nebeneinander)
- Diese 5 Werte pro Zeile sollen mit Hilfe der bedingten Formatierung (Farbskala) eingefärbt werden: grün für den kleinsten Wert, rot für den höchsten Wert und einen Farbverlauf über Gelb bei den drei mittleren Werten
- Mehrere hundert Zeilen insgesamt
Wenn ich in der bedingten Formatierung einfach den Wertebereich ändere, dann werden halt die Werte aller Zeilen verglichen und nicht immer nur die Werte einer Zeile. Vielleicht kann man das ja auch irgendwie ändern, dann müsste ich nicht mit Makros arbeiten.
Dann bin ich durch Recherche auf Makros gekommen. Ich dachte, ich erstelle einmal ein Makro, wo ich in einer Zeile den Farbverlauf mache und dann Loope ich das quasi. Also dann ein For-Loop von 1 bis 1000. Aber irgendwie kann ich den Code nicht so abändern, dass die Schleife funktioniert.
Hier mal der Code einer Beispieldatei:

Sub Makro5()
' Makro5 Makro
Range("A1,C1,E1,G1,I1").Select
Range("I1").Activate
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
.Color = 8711167
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
.Color = 192
.TintAndShade = 0
End With
End Sub

So würde ich dann die Schleife einbauen. Meine Änderungen sind fett formatiert.

Sub Makro5()
' Makro5 Makro
    Dim i As Long
For i = 1 To 5
Range(Cells(i, 1), Cells(i, 3), Cells(i, 5), Cells(i, 7), Cells(i, 9)).Select
Selection.FormatConditions.AddColorScale ColorScaleType:=3
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
xlConditionValueLowestValue
With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
xlConditionValuePercentile
Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
.Color = 8711167
.TintAndShade = 0
End With
Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
xlConditionValueHighestValue
With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
.Color = 192
.TintAndShade = 0
End With
  Next
End Sub

Leider weiß ich nicht, wie ich das .activate mit einer Variable angeben kann. Daher habe ich es gelöscht.
Folgende Fehlermeldung erhalte ich:

Fehler beim Kompilieren.:
Falsche Anzahl von Argumenten oder ungültige Eigenschaftenzuweisung.
Danke für eure Hilfe. Wenn es ohne Makro geht freue ich mich, obwohl mich die richtige Lösung mit dem Loop doch auch sehr interessieren würde. Vielen Dank!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbskale pro Zeile für sehr viele Zeilen
13.10.2020 16:57:11
ralf_b
zeig deine Formel für die bedingte Formatierung und welcher Zellbereich genau ist gemeint?
AW: Farbskale pro Zeile für sehr viele Zeilen
13.10.2020 17:12:58
Michi
Danke für deine Antwort.
Die zu vergleichenden Werte in der ersten Zeile stehen in A1, C1, E1, G1 und I1.
In der nächsten Zeile geht es dann um die Werte in A2, C2, E2, G2 und I2.
Ich habe ganz klassisch die 3-Farben-Skala (dementsprechend keine Formel verfügbar) genutzt. Der Wertebereich ist dementsprechend für Zeile 1 wie folgt: $A$1;$C$1;$E$1;$G$1;$I$1
Anzeige
AW: Farbskale pro Zeile für sehr viele Zeilen
13.10.2020 17:33:32
ralf_b
1. du kannst die nicht zusammenhängenden Bereiche mit STRG-Taste einzeln auswählen und zum Bereich in der bed. Formatierung zusammenführen.
2. Bei Regel bearbeiten steht auch ein Feld für Typ. dort kann man auch Formel auswählen. im Feld "Wert" läßt sich eine Formel angeben.
AW: als Sub()
13.10.2020 17:26:27
Fennek
Hallo,
in einer Sub() ist das recht übersichtlich:

' nach kkleinste einfärben
Sub T_1()
Dim rng As Range
Dim Col As Range
Set Col = Range("A:A, C:C, E:E, G:G, I:I")
For i = 1 To 100
Set rng = Intersect(Rows(i), Col)
For k = 1 To 5
zz = WorksheetFunction.Small(rng, k)
adr = Application.Match(zz, Rows(i), 0)
Select Case k
Case Is = 1: Cells(i, adr).Interior.Color = vbRed
Case Is = 2: Cells(i, adr).Interior.Color = 6740479
Case Is = 3: Cells(i, adr).Interior.Color = 10086143
Case Is = 4: Cells(i, adr).Interior.Color = 13431551
Case Is = 5: Cells(i, adr).Interior.Color = vbGreen
End Select
Next k
Next i
End Sub
mfg
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Farbskalen in Excel pro Zeile anwenden


Schritt-für-Schritt-Anleitung

Um eine Excel Farbskala pro Zeile mit Hilfe der bedingten Formatierung pro Zeile anzuwenden, kannst du die folgenden Schritte befolgen:

  1. Zellen auswählen: Wähle die Zellen aus, die du einfärben möchtest. Zum Beispiel A1, C1, E1, G1 und I1 für die erste Zeile.

  2. Bedingte Formatierung hinzufügen:

    • Gehe zu Start > Bedingte Formatierung > Farbskalen und wähle eine geeignete Farbskala aus.
  3. Bereich anpassen: Stelle sicher, dass der Wertebereich nur die ausgewählten Zellen der Zeile umfasst. Zum Beispiel: =$A$1;$C$1;$E$1;$G$1;$I$1.

  4. Für mehrere Zeilen wiederholen: Du kannst diese Schritte für jede einzelne Zeile wiederholen. Beachte dabei, dass der Bereich für jede Zeile unterschiedlich sein muss.

  5. Makro verwenden (optional): Wenn du viele Zeilen hast (z.B. mehrere hundert), kann es sinnvoll sein, ein Makro zu erstellen, um die Formatierung automatisiert anzuwenden.


Häufige Fehler und Lösungen

  • Fehler: "Falsche Anzahl von Argumenten oder ungültige Eigenschaftenzuweisung."

    • Lösung: Überprüfe den Code auf korrekte Syntax und dass die Argumente in den Funktionen korrekt übergeben werden.
  • Problem: Die Farbskala wird über alle Zeilen hinweg angewendet.

    • Lösung: Achte darauf, dass du die bedingte Formatierung für jede Zeile separat einrichtest oder ein Makro verwendest, das die Zeilen in einer Schleife bearbeitet.

Alternative Methoden

Wenn du keine VBA-Kenntnisse hast oder keine Makros verwenden möchtest, kannst du auch folgende alternative Methoden ausprobieren:

  • Bedingte Formatierung mit Formeln: Du kannst eine benutzerdefinierte Formel in der bedingten Formatierung nutzen, um die Farbskala je nach Zellenwert zu steuern.

  • Händisches Kopieren: Du kannst die bedingte Formatierung von einer Zeile auf andere Zeilen kopieren, indem du die Formatierung mithilfe der Format-Pinsel-Funktion überträgst.


Praktische Beispiele

Hier ist ein Beispiel für ein einfaches Makro, das die Farben für mehrere Zeilen anwendet:

Sub FarbskalaProZeile()
    Dim i As Long
    For i = 1 To 100 ' Für 100 Zeilen
        Range(Cells(i, 1), Cells(i, 3), Cells(i, 5), Cells(i, 7), Cells(i, 9)).FormatConditions.AddColorScale ColorScaleType:=3
        ' Hier die Farbskala anpassen
    Next i
End Sub

Tipps für Profis

  • Effiziente Nutzung von Makros: Wenn du mit Excel zu viele Zeilen bearbeitest, erstelle ein Makro, das alle notwendigen Formatierungen in einer Schleife anwendet. So sparst du Zeit und Aufwand.

  • Speichere deine Makros: Wenn du einmal ein funktionierendes Makro hast, speichere es in deiner Arbeitsmappe oder in persönlichen Makros, um es später wiederverwenden zu können.


FAQ: Häufige Fragen

1. Wie kann ich die Farbskala für nicht zusammenhängende Zellen anwenden?
Du kannst die nicht zusammenhängenden Zellen mit der STRG-Taste auswählen und dann die bedingte Formatierung hinzufügen.

2. Ist es möglich, die Formatierung automatisch für viele Zeilen anzuwenden?
Ja, das kannst du mit einem VBA-Makro erreichen, das die bedingte Formatierung für jede Zeile in einer Schleife anwendet.

3. Welche Excel-Version wird benötigt?
Die beschriebenen Funktionen sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2016 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige