mit folgendem Code wird die aktive Zeile formatiert bzw. umrandet. Da ich auch versteckte Spalten habe, würde ich diese gerne mit formatieren. Nach erfolglosem Herumprobieren habe ich das mit folgendem Code gelöst. Im Hintergrund werden die versteckten Spalten aufgeklappt, formatiert und wieder zugeklappt.
Ohne diesen Umweg des Auf- und Zuklappen der Spalten werden nur die sichtbaren Spalten markiert.
Vielleicht hat jemand von euch eine elegantere Lösung?
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim letztezeile As Long
Dim rng1 As Range
letztezeile = Range("A" & Rows.Count).End(xlUp).Row
Set rng1 = Range("A1:S" & letztezeile - 1)
If Not Intersect(Target, rng1) Is Nothing Then
Application.EnableEvents = False
Application.ScreenUpdating = False
Static lastrow As Long
If lastrow = 0 Then lastrow = 1
' Letzte Markierung entfärben
If Range("D:L").EntireColumn.Hidden = False Then
Rows(lastrow).Borders.Color = RGB(211, 211, 211)
Else
Range("A:S").EntireColumn.Hidden = False
Rows(lastrow).Borders.Color = RGB(211, 211, 211)
Range("D:L").EntireColumn.Hidden = True
End If
' Markierung einfärben
With Range(Cells(Target.Row, "A"), Cells(Target.Row, "S"))
If Range("D:L").EntireColumn.Hidden = False Then
.BorderAround LineStyle:=xlContinuous, Weight:=xlThin
.Borders(xlEdgeLeft).Color = RGB(211, 211, 211)
.Borders(xlEdgeRight).Color = RGB(211, 211, 211)
Else
Range("A:S").EntireColumn.Hidden = False
.BorderAround LineStyle:=xlContinuous, Weight:=xlThin
.Borders(xlEdgeLeft).Color = RGB(211, 211, 211)
.Borders(xlEdgeRight).Color = RGB(211, 211, 211)
Range("D:L").EntireColumn.Hidden = True
End If
lastrow = .Row
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub