Microsoft Excel

Herbers Excel/VBA-Archiv

Zellenfärbung


Betrifft: Zellenfärbung von: bjoern
Geschrieben am: 01.10.2019 07:40:10

Hallo und guten Morgen
In Excel gibt es die Möglichkeit mit „bedingte Formatierung“ Zellen einzufärben.
Konkret will ich das er mir die Zelle grün färbt, wenn sie Großer ist als die Zelle darunter,
Und rot, wenn sie kleiner ist.

Manuell ist das ja kein Problem
Nun will ich das aber per VBA auf die Zellen übertrage
Damit ich das in die For-Next Schleife einbauen kann, die mir neue Zellen hinzufügt
Kann mir jemand auf die Schnell helfen?

Beste Grüße
Und natürlich danke
Der Björn

(bei Rechtschreibfehler bite ich wie immer um Nachsicht)

  

Betrifft: AW: Zellenfärbung von: Pierre
Geschrieben am: 01.10.2019 09:15:10

Hallo,

hilft dir das schon mal (4. Post)?

http://www.office-loesung.de/ftopic430722_0_0_asc.php
Den Code für deine Bedürfnisse folgendermaßen ändern:
'    If Not Intersect(Target, Range("A1:A50")) Is Nothing Then
'        For Each rngC In Intersect(Target, Range("A1:A50"))
'            Select Case True
'              Case rngC.Value < rngC.Offset(1, 0).Value
'               rngC.Interior.ColorIndex = 3 'rot
'              Case rngC.Value > rngC.Offset(1, 0).Value
'               rngC.Interior.ColorIndex = 4 'grün
'              Case rngC.Value = rngC.Offset(1, 0).Value
'               rngC.Interior.ColorIndex = 0 'weiß
'            End Select
'        Next
'    End If
So wird der Code allerdings von oben nach unten durchlaufen, das müsstest du noch anpassen.

Gruß Pierre


  

Betrifft: AW: Zellenfärbung von: Daniel
Geschrieben am: 01.10.2019 09:45:54

Hi
würde es nicht reichen, wenn du die Bedingte Formatierung für die ganze Spalte gültig machst?
Gruß Daniel


  

Betrifft: AW: Zellenfärbung von: bjoern
Geschrieben am: 01.10.2019 09:56:10

nach langen suchen haben ich es nun selbst hinbekommen über

Sub abc()
For a = 1 To 3
'Sheets(a).Activate
If Sheets(a).Range("b20").Value < Sheets(a).Range("b21").Value Then Sheets(a).Range("b20"). _
Interior.ColorIndex = 6

If Sheets(a).Range("b20").Value > Sheets(a).Range("b21").Value Then Sheets(a).Range("b20"). _
Interior.ColorIndex = 3

Next a

End Sub

danke für die Hilfe ich schaue mir nun eure Vorschläge an