Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen einfärben

Betrifft: Zeilen einfärben von: Ro Xi
Geschrieben am: 10.03.2016 10:13:24

Hallo ihr Lieben,
ich hab mal wieder ien kleines Problem mit einem VBA Code.
Und zwar möchte ich beim Anwählen einer Zelle, dass die entsprechende Zeile farblich markiert wird. Das funktioniert auch! Allerdings wird beim Speichern der Datei die zuvor markierte Zelle fest eingefärbt. Sprich nach dem erneuten Öffnen ist die Zeile immer gefärbt.
Ich habe schon ein paar Sachen probiert. Zum Beispiel, dass nach dem Wechsel eines Tabellenblattes die Zelle (3,3) markiert wird. Das hat aber nicht funktioniert...
Habt Ihr eine Idee wie man das lösen könnte?
Hier der Code:
Dim Merk, Farbe

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If ActiveWorkbook.Worksheets(4) Is ActiveSheet Then

    If Merk <> "" Then Rows(Merk).Interior.ColorIndex = Farbe
    If Intersect(Target, Range("B8:L20000")) Is Nothing Then Exit Sub
   
    Merk = Target.Row
    Farbe = Target.Interior.ColorIndex
   
    Rows(Target.Row).Interior.ColorIndex = 35
    Else
    Exit Sub
    End If

End Sub

Liebe Grüße,
Roxi

  

Betrifft: AW: Zeilen einfärben von: Daniel
Geschrieben am: 10.03.2016 10:26:05

Hi

du müssstest dir die Zeilennummer an einer Stelle merken, die beim Speichern mit gespeichert wird und somit beim Schließen nicht verloren geht, beispielsweise in eine Excelzelle oder in einem Namen.

ich würde die Zellen für so eine Markierung auch nicht permanent färben, sondern über die Bedingte Formatierung.

machs mal so:
1. folgender Code ins Modul des Tabllenblatts, dieser Schreibt die aktuelle Zeilennummer in einen Namen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ThisWorkbook.Names.Add "AktuelleZeile", RefersToR1C1:="=" & Target.Row
Application.ScreenUpdating = True
End Sub
2. richte für die betroffenen Zellen (B8:L20000) eine Bedingte Formatierung mit folgender Formel als Regel ein:
=Zeile()=AktuelleZeile
Gruß Daniel


  

Betrifft: AW: Zeilen einfärben von: Ro Xi
Geschrieben am: 10.03.2016 10:46:43

Hallo Daniel,
danke für deine super schnelle Antwort!!!!
Und das Beste an der Sache ist, dass es auch funktioniert.
Gibt es eine Möglichkeit, die zeitliche Verzögerung nach der Auswahl einer Zelle zu minimieren?

Vielen Dank nochmal und liebe Grüße.
ROXI


  

Betrifft: AW: Zeilen einfärben von: Daniel
Geschrieben am: 10.03.2016 11:05:40

Hi
ich wüsste jetzt nicht, was da verzögern sollte.
hast du viele Formeln auf dem Blatt?

ohne einfluss auf die Rechenzeit sollte folgendes sein:

1. Erstelle aus den Formen ein Reckteck. Setze die Hintergrundfarbe auf Transparent und färbe den Rahmen in einer auffälligen Farbe und Rahmendicke

2. im SelectionChange-Event verschiebst du dann dieses Rechteck auf die selektierte Zeile.
mach es etwas grösser als die Zelle, damit du bei Bedarf auch auf den Rahmen und die untere rechte Ecke der Zelle klicken kannst:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With Me.Shapes("Rectangle 1")
    .Top = Target(1).Top - 3
    .Height = Target(1).Height + 6
    .Left = 1
    .Width = Me.UsedRange.Width
End With
End Sub
weiterer Vorteil dieser Markierungsmethode:
du kannst die Form so einstellen, dass sie nicht mit ausgedruckt wird, dh er ausdruck erfolgt dann immer ohne diese Zeilenmarkierung.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen einfärben"