EXCEL - VBA: Zellen abhängig von Wert färben
Inhaltsverzeichnis
Problemdefinition
Ein Benutzer hat ein Makro erstellt, das die Zelle E26 einfärbt, wenn die Differenz zwischen den Zellen E15 und E26 größer als ±0,5 ist. Jetzt möchte der Benutzer das Makro so erweitern, dass es auch für die Zellen in den Spalten D26 bis AH26 funktioniert. Zusätzlich möchte der Benutzer, dass die Zelle bei kleineren Differenzen die "automatische Färbung" behält, anstatt weiß gefärbt zu werden.
Lösung des Problems mit VBA
Um das Makro auf die Zellen in den Spalten D26 bis AH26 zu erweitern, können wir eine Schleife verwenden, um durch die Spalten zu iterieren. Wir können auch die ColorIndex
-Eigenschaft auf -4142 setzen, um die "automatische Färbung" beizubehalten.
Anwendungsbeispiel aus der Praxis
Hier ist ein Beispiel für das angepasste Makro:
Sub Faerben()
Dim col As Integer
For col = 4 To 34 'Spalten D bis AH
With ThisWorkbook.Sheets("Tabelle1").Cells(26, col)
If Abs(.Value - .Offset(-11, 0).Value) > 0.5 Then
.Interior.Color = RGB(255, 0, 0) 'Rot
Else
.Interior.ColorIndex = -4142 'Automatische Färbung
End If
End With
Next col
End Sub
In diesem Beispiel iteriert die Schleife For col = 4 To 34
durch die Spalten D bis AH. Die With
-Anweisung wird verwendet, um die aktuelle Zelle in der Schleife zu referenzieren (z.B. D26, E26, etc.). Die If
-Anweisung prüft, ob der Absolutwert der Differenz zwischen dem Wert der aktuellen Zelle und dem Wert der Zelle 11 Zeilen darüber größer als 0,5 ist. Wenn ja, wird die Zelle rot gefärbt. Andernfalls wird die "automatische Färbung" beibehalten.
Tipps
- Du kannst die Farbe ändern, indem du die
RGB
-Funktion anpasst. Zum Beispiel, RGB(0, 255, 0)
würde die Zelle grün färben.
Verwandte Funktionen
For...Next
: Diese Schleife wird verwendet, um eine Gruppe von Anweisungen für eine bestimmte Anzahl von Malen zu wiederholen.
With...End With
: Diese Anweisung wird verwendet, um eine Gruppe von Anweisungen auf ein bestimmtes Objekt anzuwenden.
Zusammenfassung
Mit einer For...Next
-Schleife und der ColorIndex
-Eigenschaft kannst du das Makro so anpassen, dass es für mehrere Zellen funktioniert und die "automatische Färbung" beibehält, wenn die Differenz kleiner oder gleich 0,5 ist.