Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

zellen in einem Bereich färben

zellen in einem Bereich färben
10.01.2008 08:56:00
Jonatan
Hallo,
ich such nach einem Makro, das folgende Funktion durchführen sollte.
Wenn in einem bestimmten Bereich der Zellinhalt größer 0 ist, dann prüfe, ob in einer bestimmten Zelle, die in derselben Zeile wie die Werte steht, aber außerhalb des Bereichs ist, ob in dieser Zelle z.B. das Wort Auto steht.
Es soll vier Varianten zur Auswahl geben (z.B. Haus, Auto, Bild, Buch).
Wenn haus dort steht, soll die Zellen (mit Wert größer 0), in der betreffenden Zeile, z.B. rot gefärbt werden,
Wenn Auto steht, z.B. gelb, bei Bild grün, bei Buch blau und wenn kein Wert in der abgefragten Zelle zu finden ist, soll es farblos bleiben.
Dann soll die nächste Zeile überprüft werden, bis der ganze Bereich auf diese Weise überprüft wurde.
Wer könnte mir hier ein bisschen weiter helfen.
Vielen Dank schon mal
Gruß Jonatan

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

Betreff
Datum
Anwender
Anzeige
AW: zellen in einem Bereich färben
10.01.2008 09:39:00
Renee
Hi Jonatan,
Das könnte z.B. mit diesem Code in der entsprechenden Tabelle funktionieren.
Der Bereich tThisRange gibt an, wo die zu testenden Werte auftreten können.
Der Offset iThisRange gibt an, in welcher Spalte (Minus = Links von der Zelle, Plus = Rechts von der Zelle) die Zelle gefärbt werden soll.

Private Sub Worksheet_Change(ByVal Target As Range)
Const tThisRange = "G2:G10"
Const iThatOffset = -5
If Intersect(Target, ActiveSheet.Range(tThisRange)) Is Nothing Or _
Target.Cells.Count > 1 Then Exit Sub
Select Case LCase(Target.Value)
Case "haus"
Target.Offset(0, iThatOffset).Interior.ColorIndex = 3
Case "auto"
Target.Offset(0, iThatOffset).Interior.ColorIndex = 4
Case "bild"
Target.Offset(0, iThatOffset).Interior.ColorIndex = 5
Case "buch"
Target.Offset(0, iThatOffset).Interior.ColorIndex = 6
Case Else
Target.Offset(0, iThatOffset).Interior.ColorIndex = xlColorIndexNone
End Select
End Sub


GreetZ Renée

Anzeige
AW: zellen in einem Bereich färben
10.01.2008 10:07:00
Jonatan
Hallo Renée,
vielen Dank erstmal.
Ich hab das grad ausprobiert, nur wollte es noch nicht zu richtig funtionieren.
Wenn ich z.B. irgendwo im Bereich G2 bis G10 die Namen Auto, Bild, ... schreibe, welche Zellen werden dann gefärbt.
Was bedeutet "Target.Cells.Count größer 1 Then Exit Sub" Heißt das, wenn der Zellinhalt größer ist, wird das Sub beendet?
Wenn der Bereich der gefärbt werden soll, nicht nur eine einzelne Spalte sondern mehrere Spalten sind, wie muss man dann den Code verändern.
Gruß Jonatan

AW: zellen in einem Bereich färben
10.01.2008 10:48:00
Jonatan
Hallo Renée,
vielen Dank erstmal.
Ich hab das grad ausprobiert, nur wollte es noch nicht zu richtig funtionieren.
Wenn ich z.B. irgendwo im Bereich G2 bis G10 die Namen Auto, Bild, ... schreibe, welche Zellen werden dann gefärbt.
Was bedeutet "Target.Cells.Count größer 1 Then Exit Sub" Heißt das, wenn der Zellinhalt größer ist, wird das Sub beendet?
Wenn der Bereich der gefärbt werden soll, nicht nur eine einzelne Spalte sondern mehrere Spalten sind, wie muss man dann den Code verändern.
Gruß Jonatan

Anzeige
AW: zellen in einem Bereich färben
10.01.2008 11:08:11
Renee
Hi Jonatan,
welche Zellen werden dann gefärbt. die Zelle 5 Spalten links von Spalte G, sprich Spalte B
Was bedeutet "Target.Cells.Count größer 1 es wird geprüft ob genau eine Zelle verändert wurde.
sondern mehrere Spalten sind, dann z.B. so:

Private Sub Worksheet_Change(ByVal Target As Range)
Const tThisRange = "G2:G10"         ' Bereich der EingabeZellen
Const iThatOffset = -5              ' Offset zum Bereich in Spalten (links-,rechts+)
Const iNrofColumns = 3              ' Anzahl Spalten nach rechts ab Offsetspalte
Dim lx As Long
If Intersect(Target, ActiveSheet.Range(tThisRange)) Is Nothing Or _
Target.Cells.Count > 1 Then Exit Sub
Select Case LCase(Target.Value)
Case "haus"
For lx = iThatOffset To iThatOffset + iNrofColumns - 1
Target.Offset(0, lx).Interior.ColorIndex = 3
Next lx
Case "auto"
For lx = iThatOffset To iThatOffset + iNrofColumns - 1
Target.Offset(0, lx).Interior.ColorIndex = 4
Next lx
Case "bild"
For lx = iThatOffset To iThatOffset + iNrofColumns - 1
Target.Offset(0, lx).Interior.ColorIndex = 5
Next lx
Case "buch"
For lx = iThatOffset To iThatOffset + iNrofColumns - 1
Target.Offset(0, lx).Interior.ColorIndex = 6
Next lx
Case Else
For lx = iThatOffset To iThatOffset + iNrofColumns - 1
Target.Offset(0, lx).Interior.ColorIndex = xlColorIndexNone
Next lx
End Select
End Sub


GreetZ Renée

Anzeige
AW: zellen in einem Bereich färben
10.01.2008 11:46:41
Jonatan
Hallo Renée,
Wenn ich in G3 "haus" reinschreibe und in B3 steht auch was drin, müsste doch eigentlich B3 gefärbt werden.
Irgendwie muss ich was falsch machen; Es reicht doch aus, wenn ich deinen Code als Modul einfüge, oder?
Vielen Dank
Jonatan

Code nicht in Modul!...
10.01.2008 11:56:00
Renee
sondern in das Tabellenblatt!
GreetZ Renée

AW: Code nicht in Modul!...
10.01.2008 12:18:05
Jonatan
Naja, bin eben noch ein Anfänger...;-)
Trotzdem vielen Dank
Gruß Jonatan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige