Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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

mit VBA! Zellen färben nach Kriterium pro Spalte

mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 14:18:38
Tobias
Hallo,
ich möchte mittels VBA die Zellen färben, wie in der Datei beschrieben. Wichtig ist dass es eine Lösung mit VBA ist, da die Bedingte Formatierung bei mir nicht möglich ist (die Farben müssen "fest" in der Zelle sein, da die Dateien später von Tablets geöffnet werden, welche keine Bedingte Formatierung erkennen)
https://www.herber.de/bbs/user/89154.xlsx
Ich hoffe dass sich das unkompliziert per VBA lösen lässt. Das Makro soll auf bereits vorhandene Tabellen angewendet werden, d.h. es muss nicht dynamisch sein.
Vielen Dank und viele Grüße
Tobias

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 14:31:38
Rudi
Hallo,
Sub Farbe()
Dim rngC As Range
Application.ScreenUpdating = False
For Each rngC In Range(Cells(2, 1), Cells(Rows.Count, 1).End(xlUp))
If rngC = "B" Then
rngC.Interior.Color = vbYellow
Else
rngC.Interior.Color = xlNone
End If
If rngC.Offset(, 1) = 10 Then
rngC.Offset(, 1).Interior.Color = vbRed
Else
rngC.Offset(, 1).Interior.Color = xlNone
End If
If rngC.Offset(, 2) = "Z" Then
rngC.Offset(, 2).Interior.Color = vbRed
Else
rngC.Offset(, 2).Interior.Color = xlNone
End If
Next
End Sub

Gruß
Rudi

AW: mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 15:20:01
Tobias
Hallo Rudi,
vielen Dank für die Antwort. Ich habe den Code in mein Beispiel eingetragen, bekomme aber nun folgendes Problem:
Meine erste Spalte bei der ich färben möchte, beginnt bei "I". Ich habe folgenden Code eingefügt (der Einfachheit halber erstmal nur diese eine Spalte):
Sub Farbe()
Dim rngC As Range
Application.ScreenUpdating = False
For Each rngC In Range(Cells(2, 9), Cells(Rows.Count, 1).End(xlUp))
If rngC = "P" Then
rngC.Interior.Color = vbYellow
Else
rngC.Interior.Color = xlNone
End If
Next
End Sub

Die Spalte I wird bei allen "P" jetzt gelb gefärbt, aber alle Zellen von Spalte A bis I werden dabei weiß gemacht (teilweise hatten diese schon andere Farben). Kann man dies verhindern, und wirklich nur die Zellen "anfassen" die den Eintrag P enthalten?
VG Tobias

Anzeige
AW: mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 15:23:48
Tobias
ich aktiviere die Frage mal noch als offen...

AW: mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 14:42:00
EtoPHG
Hallo,
In ein Modul.
Die Arrays lassen sich einfach anpassen und/oder ausbauen.
Sub MachsFarbig()
Dim aColumns, aValues, aColors
Dim lRow As Long, lCol As Long, lx As Long
aColumns = Array(1, 2, 3)                   'Spaltennummern
aValues = Array("B", 10, "Z")               'Inhalt der jew. Spalte
aColors = Array(vbYellow, vbRed, vbRed)     'Hintergrundfarbe der Zelle
For lRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For lCol = 0 To UBound(aColumns)
With Cells(lRow, aColumns(lCol))
.Interior.ColorIndex = xlColorIndexNone
If .Value = aValues(lCol) Then .Interior.Color = aColors(lCol)
End With
Next lCol
Next lRow
End Sub
Gruess Hansueli

Anzeige
AW: mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 15:23:14
Tobias
Hallo Hansueli,
auch dir herzlichen Dank für die Mühe. Wie bei Rudis Code habe ich ein Problem, dass er auch Zellen bearbeitet die einen anderen Inhalt haben:
Sub MachsFarbig()
Dim aColumns, aValues, aColors
Dim lRow As Long, lCol As Long, lx As Long
aColumns = Array(9) 'Spaltennummern
aValues = Array("P") 'Inhalt der jew. Spalte
aColors = Array(vbYellow) 'Hintergrundfarbe der Zelle
For lRow = 2 To Cells(Rows.Count, 1).End(xlUp).Row
For lCol = 0 To UBound(aColumns)
With Cells(lRow, aColumns(lCol))
.Interior.ColorIndex = xlColorIndexNone
If .Value = aValues(lCol) Then .Interior.Color = aColors(lCol)
End With
Next lCol
Next lRow
Dieser Code ist jetzt in meinem konkreten Beispiel. Der Vorteil zu Rudis Code ist, dass er die Spalten A bis H in Ruhe lässt. Allerdings werden in Spalte I alle Zellen weiß, welche nicht "P" enthalten. Lässt sich das verhindern?
Vielen Dank!,
Tobias

Anzeige
AW: mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 15:30:18
EtoPHG
Hallo Tobias,
Lösch einfach die Zeile: .Interior.ColorIndex = xlColorIndexNone
Allerdings behalten die Zellen dann ihre Farbe und ev. eben auch eine falsche, wenn ihr Wert geändert wird.
Gruess Hansueli

AW: mit VBA! Zellen färben nach Kriterium pro Spalte
07.02.2014 15:33:40
Tobias
Vielen Dank Hansueli, jetzt ist es perfekt! :)

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige