Hallo Forum,
ich möchte ein Makro, dass stets die aktuell aktive Zeile farblich markiert. Dabei sollen sonstige Farben in der Tabelle erhalten bleiben und die Einfärbung soll auch stets wieder entfernt werden (zb. beim Speichern).
Soweit hab ich das auch alles hinbekommen mit dem unten stehenden Code. Wenn jetzt aber die Tabelle neu sortiert wird stößt mein Makro an seine Grenzen. Die markierte Zeile wird ebenfalls umsortiert und anschließend wird nicht wieder korrekt umgefärbt. Mir fehlt jetzt die Phantasie wie ich das Problem lösen kann. Vielleicht hat jemand einen Tipp?
Danke im voraus und hier noch der Code,
Sven
Teil1: In der Tabelle:
Dim farben(1 To 200) As Long
Dim alteZellen As Range
Dim letzteSpalte As Integer
Dim i As Integer
Sub Worksheet_SelectionChange(ByVal Target As Range)
Call Rueckfaerben
If Target.Cells.Count = 1 Then
Call Faerben(Target)
End If
End Sub
Public Sub Rueckfaerben()
i = 1
If Not alteZellen Is Nothing Then
Cells(alteZellen.Row, i).EntireRow.Interior.ColorIndex = xlNone
Do While i < letzteSpalte + 1
If Not farben(i) = 16777215 Then
Cells(alteZellen.Row, i).Interior.Color = farben(i)
End If
i = i + 1
Loop
End If
End Sub
Public Sub Faerben(ByVal Target)
letzteSpalte = Tabelle1.Cells(Selection.Row, 256).End(xlToLeft).Column
If letzteSpalte < 26 Then letzteSpalte = 26
i = 1
Do While i < letzteSpalte + 1
farben(i) = Cells(Selection.Row, i).Interior.Color
i = i + 1
Loop
Target.EntireRow.Interior.ColorIndex = 6
Set alteZellen = Target
End Sub
Teil2: Im Workbook:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Tabelle1.Rueckfaerben
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Abbrechen As Boolean)
Call Tabelle1.Rueckfaerben
End Sub
|