Tipps & Tricks 25.07.2006, 09:45 Uhr

Excel: Zellen/Zeilen farbig hinterlegen

Ich möchte, dass bei meiner Excel-Tabelle immer die jeweils aktive Zelle farblich hervorgehoben wird. Gibt es eine Funktion, die mir das ermöglicht?
Um den gewünschten Effekt zu erzielen, muss folgendes Makro im "VBA-Editor" bei der betreffenden Tabelle hinein geschrieben werden:
Dim lastcell As Range
Dim farbe As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
On Error Resume Next
lastcell.Interior.ColorIndex = farbe
farbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 34
Set lastcell = Target
End Sub
Die Zahl am Ende der siebten Zeile bestimmt die Farbe der Markierung. Mit der Zahl "34" würde die aktive Zeile hellblau hervorgehoben werden. Leider verhindert dieses Makro, dass die restlichen Zellen farbig hinterlegt sein können. So muss man sich bei der optischen Gliederung der Tabelle auf Änderungen bei der Schrift und der Umrandung beschränken.
Das Gleiche funktioniert auch für ganze Zeilen mit folgendem Makro:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Cells.Interior.ColorIndex = xlNone
Rows(Target.Row).Interior.ColorIndex = 34
End Sub
Wenn man will, dass die aktive Zeile und die darin aktive Zelle jeweils unterschiedlich farblich hinterlegt werden, kann man die Effekte kombinieren:
Dim lastcell As Range
Dim farbe As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
On Error Resume Next
Cells.Interior.ColorIndex = xlNone
Rows(Target.Row).Interior.ColorIndex = 22
lastcell.Interior.ColorIndex = farbe
farbe = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 46
End Sub
Solange eines dieser Makros aktiv ist, muss man mit einem Nebeneffekt leben. Da Excel bei jeder Zellen-Formatierung seine Zwischenablage löscht, kann die "Kopieren"-Funktion nicht mehr benützt werden. Das Makro beeinflusst jeweils nur die Tabelle, in die es eingefügt wurde. Alle anderen Tabellen und Blätter sind von den Effekten nicht betroffen.


Kommentare
Es sind keine Kommentare vorhanden.