4.8k Aufrufe
Gefragt in Tabellenkalkulation von finger59 Experte (1.3k Punkte)
Guten Morgen liebe Excelfangemeinde,

ich hänge in einem Makro mal wieder fest und hoffe auf Eure Unterstützung.
Mein Ziel war es die Schriftfarbe einer Zeile bei einer bestimmten Vorgabe ändern zu lassen. Die Vorgabe sollte dabei eine Eintragung in der Spalte BD abfragen und bei dem Eintrag von K die rote Schriftfarbe (nicht einfärben!), bei A die blaue Schriftfarbe usw. erhalten.
Mit meinem Makro erreiche ich es zwar das die Zelle selber die entsprechende Farbe erhält, aber nicht die Zeile.

Das Makro sieht derzeitig so aus:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim bereich As Range
Dim rngrow As Range
Set bereich = ActiveSheet.Range("a2:bd407")
For Each rngrow In bereich
Select Case rngrow
Case "A"
rngrow.Font.ColorIndex = 32
Case "L"
rngrow.Font.ColorIndex = 18
Case "K"
rngrow.Font.ColorIndex = 3
Case Else
rngrow.Font.ColorIndex = 1
End Select
Next
End Sub

Ich bedanke mich schon mal bei allen Interessierten und wünsche Euch noch einen schönen Tag. Mfg.. Helmut

4 Antworten

0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Helmut,

sorry, aber wenn ich Deine Worte lese verstehe ich den Code nicht und wenn ich den Code analysiere, verstehe ich Deine Worte nicht.

Vielleicht kannst Du mal ganz allgemeinverständlich schildern, was auf Deinem Arbeitsblatt vorliegt, und was bei welchen Eingaben in Spalte BD, gefärbt werden soll.

Gruß
Rainer
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hallo Rainer,

zunächst einmal vielen Dank für Deine Rückfrage.

In meinem Tabellenblatt möchte ich erreichen, wenn ich u.a. ein K in eine Zelle der Spalte BD eintrage, dass dann die komplette Zeile die Schriftfarbe rot erhält. Bei einem Eintrag des Buchstabens A in eine Zelle der Spalte BD soll die Schriftfarbe auf Blau gesetzt werden usw.
z.B. Zelleintrag BD3 = A, dann soll die Zeile 3 die Schriftfarbe Blau erhalten, bei einem Zelleintrag in BD7 = K, dann soll die Zeile 7 die Schriftfarbe Rot erhalten. Da ich leider mehr als 3 Kombinationen habe, komme ich mit der bedingten Formatierung in Excel 2003 nicht ohne Vba aus.
Leider sind meine Makrokenntnisse auch mehr auf das Internet durchstöbern und versuchen andere Lösungen auf auf eigene Belange umzusetzen begrenzt.
Das in meiner Anfrage geschriebene Makro hatte vorher die Angabe rngZelle, die ich auf rngrow umgewandelt hatte; in der Hoffnung das sich dadurch die Zeile statt Zelle mit der Schriftfarbe verändern würde.
Vielleicht deshalb auch Dein Nachfragen, da sich das Makro immer noch auf eine Zelle und nicht Zeile bezieht.
Ich hoffe, dass ich mit dieser Anfrage mein Problem besser geschildert zu haben.
Gruß Helmut
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Helmut,

das würde ich so machen.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Not Intersect(Target, Range("BD2:BD407")) Is Nothing Then
Select Case Target.Value
Case "A"
Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Font.ColorIndex = 32
Case "L"
Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Font.ColorIndex = 18
Case "K"
Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Font.ColorIndex = 3
Case Else
Range(Cells(Target.Row, 1), Cells(Target.Row, Target.Column)).Font.ColorIndex = 1
End Select
End If
End Sub


Das kannst Du ja beliebig erweitern bzw. die Farbcodes anpassen.

Gruß
Rainer
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Guten Morgen Rainer,

leider bin ich erst gerade dazu gekommen mir Deine Lösung anzusehen.

Vielen Dank für Deine Hilfestellung, da ich jetzt wieder weiterkomme.

Ich wünsche Dir und natürlich auch allen anderen Interessierten und
Excelhelfer einen schönen Tag - natürlich in der Hoffnung das der
Schneefall jetzt so langsam mal wieder aufhört.

Gruß Helmut
...