Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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!

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
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.
Anzeige
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

111 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige