AW: Zellenbereiche umfärben
MCO
Mahlzeit!
Ich hab die Bereiche erst in einen zusammengelegt, dann gefärbt.
Im Zweiten beispielen habe ich aus den IF-Bedingungen noch select case gemacht. das macht es überschaubarer.
Schau mal , ob es so schneller geht.
Sub test()
Dim rZelle As Range 'Laufvariable
Dim rBereich As Range
'Aufbau der Testumgebung
Set rBereich = Range("b2").Resize(300, 5)
rBereich.Clear
rBereich = "www"
rBereich(3, 1) = "kkk"
rBereich(2, 2) = "eee"
Dim Ber_yell As Range
Dim Ber_cyan As Range
Dim Ber_green As Range
Set Ber_yell = Range("A1") 'ini-Bereich muss festgelegt sein
Set Ber_cyan = Range("A1")
Set Ber_green = Range("A1")
'Einfärben der Zellen gemäß Inhalt
Application.ScreenUpdating = False
For Each rZelle In rBereich
If rZelle.Text = "www" Then
Set Ber_yell = Application.Union(rZelle, Ber_yell)
ElseIf rZelle.Text = "kkk" Then
Set Ber_cyan = Application.Union(rZelle, Ber_cyan)
ElseIf rZelle.Text = "aaa" Then
Set Ber_green = Application.Union(rZelle, Ber_green)
End If
Next rZelle
Ber_yell.Interior.Color = vbYellow
Ber_cyan.Interior.Color = vbCyan
Ber_green.Interior.Color = vbGreen
Range("A1").Interior.ColorIndex = xlNone
Application.ScreenUpdating = True
End Sub
Sub test2()
Dim rZelle As Range 'Laufvariable
Dim rBereich As Range
'Aufbau der Testumgebung
Set rBereich = Range("b2").Resize(300, 5)
rBereich.Clear
rBereich = "www"
rBereich(3, 1) = "kkk"
rBereich(2, 2) = "eee"
Dim Ber_yell As Range
Dim Ber_cyan As Range
Dim Ber_green As Range
Set Ber_yell = Range("A1") 'ini-Bereich muss festgelegt sein
Set Ber_cyan = Range("A1")
Set Ber_green = Range("A1")
'Einfärben der Zellen gemäß Inhalt
Application.ScreenUpdating = False
For Each rZelle In rBereich
Select Case rZelle.Text
Case Is = "www": Set Ber_yell = Application.Union(rZelle, Ber_yell)
Case Is = "kkk": Set Ber_cyan = Application.Union(rZelle, Ber_cyan)
Case Is = "aaa": Set Ber_green = Application.Union(rZelle, Ber_green)
End Select
Next rZelle
Ber_yell.Interior.Color = vbYellow
Ber_cyan.Interior.Color = vbCyan
Ber_green.Interior.Color = vbGreen
Range("A1").Interior.ColorIndex = xlNone
Application.ScreenUpdating = True
End Sub
Gruß, MCO