Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: bedingte formatierung per vba

bedingte formatierung per vba
24.03.2009 16:26:14
Tobias
Hallo allerseits!
Wie kann ich folgendes bewerkstelligen:
Ich möchte das, wenn in Spalte E="ja" dann in der jew. Zeile von A-E grüner Zellhintergrund.
(am besten ein rgb wert)
Wie mach ich das per VBA?
grüsse,
Tobias
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: bedingte formatierung per vba
24.03.2009 16:50:16
Specke
Hallo Tobias,
vielleicht hilft Dir das weiter:

Sub faerben()
For i = 1 To 100
If Worksheets(1).Range("E" & i).Value = "ja" Then
Worksheets(1).Range("A" & i & ":E" & i).Interior.Color = RGB(100, 100, 100)
End If
Next i
End Sub


Gruß Specke

Anzeige
AW: bedingte formatierung per vba
24.03.2009 17:06:56
Tobias
Ja, vielen dank,
allerdings brauch ichs permanent, d.h. dauernd aktiv und nicht nur einmal ausgeführt...
ich werds mal versuchen anzupassen... und geb bescheid wenns geklappt hat
beste grüsse,
tobias
AW: bedingte formatierung per vba
24.03.2009 17:30:28
hary
hi Tobias
Bei Speckes Code wirst Du ein Problem bekommen(hab ich hier im Forum gelernt). Wenn Du aus einer Zelle ein ja rausnimmst bleibt die Farbe.
versuch mal meins. Auch keine Beschraenkung der Spalten Laenge. Wenn es staendig wirksam sein soll dann entweder ins Change ereigniss der tab oder mit intersect.

Sub Grün()
Dim rng As Range
Dim c As Range
Set rng = Range("E1:E" & Cells(Rows.Count, 5).End(xlUp).Row)
rng.Interior.ColorIndex = xlNone 'hiermit werden erstmal die Farben entfernt
For Each c In rng
If c = "ja" Then
Range("A" & c.Row & ":E" & c.Row).Interior.ColorIndex = 4 ' RGB Farben nicht zur Hand
End If
Next
End Sub


Gruss Hary

Anzeige
AW: verbessert
24.03.2009 17:41:22
hary
hi
ich nochmal. War noch ein kleiner Fehler drin. so ist es besser.

Sub Grün()
Dim rng As Range
Dim c As Range
Set rng = Range("E1:E" & Cells(Rows.Count, 5).End(xlUp).Row) 'Bereich aendern, hier A1 bis  _
D10
Range("A1:E65536").Interior.ColorIndex = xlNone 'hiermit werden erstmal die Farben entfernt
For Each c In rng
If c = "ja" Then
Range("A" & c.Row & ":E" & c.Row).Interior.ColorIndex = 4
End If
Next
End Sub


Gruss hary

Anzeige
AW: verbessert
25.03.2009 13:54:29
Tobias
Halo Hary,
Ich hatte noch das problem, das ich die Reihen 1-9 "ausnehmen" wollte.
Hab das jetzt so gelöst, vermutlich nicht optimal, aber es funktioniert:

Set rng = Range("E9:E" & Cells(Rows.count, 5).End(xlUp).Row) 'Bereich aendern, hier A1 bis D10
Range("A9:E1000").Interior.ColorIndex = xlNone 'hiermit werden erstmal die Farben entfernt
For Each c In rng
If c = "ja" Then
If c.Row >= 9 Then
Range("A" & c.Row & ":E" & c.Row).Interior.Color = RGB(194, 214, 154)
End If
End If
Next


Vielen Dank nochmal,
Tobias

Anzeige
AW: Ok
25.03.2009 17:53:00
hary
Hi Tobias

If c.Row >= 9 Then und ein end if kann raus


, da der Bereich(ab E9) schon in der ersten Zeile des Codes festgelegt ist.
sonst ist doch i.O. Hattest ja nix von der groesse des Bereichs geschrieben, deshalb 65536(also bis gaaanz unten).
Gruss Hary
PS: meine Meinung: Ein code soll nicht schoen sein, sondern funktionieren ;-)))

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige