Zellen / Zeilen farblich markieren

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Zellen / Zeilen farblich markieren

#1

Beitrag von d'r Bastler »

Moin,
eigentlich ist der Code unten Farbspielerei Nr. 5, kann aber in sehr großen Tabellen und auf großem/n Monitor/en tatsächlich zur Orientierung dienen, wo man denn gerade ist. Die SelectionChange-Version färbt beim Wechsel der Zeile die ersten fünf Zellen als Hinweis ein, beim Verlassen wieder aus. Die DoubleClick-Verison markiert nur einzelne (auch mehrere) Zellen, die dann als Orientierungspunkt dienen.

Code: Alles auswählen

Option Explicit
Public iRow as integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer

If iRow <> 0 Then
    For i = 1 To 5                      'entfernt die vorherigen Formatierungen
        Cells(iRow, i).ClearFormats
    Next i
End If
    
For i = 1 To 5                          'verpasst den Zellen A-E der ausgewählten Zeile eine farbliche Markierung
    Cells(Target.Row, i).Interior.ColorIndex = 22
    iRow = Target.Row
Next

End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim iDX As Integer
'Cancel = True                      'TRUE wenn nur markiert, aber nichts geändert werden soll

With Target.Interior
    iDX = .ColorIndex
    Select Case iDX
        Case 38
            ActiveCell.ClearFormats 'entfernt die vorherigen Formatierungen
        Case Else
            .ColorIndex = 38        'verpasst der ausgewählten Zelle eine farbliche Markierung
    End Select
End With

End Sub
Viel Spaß damit!
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
thowe
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Re: Zellen / Zeilen farblich markieren

#2

Beitrag von d'r Bastler »

Hier die Alternative für das alle Formatierungen killende ClearFormats:
Aus dem eigenen Spickzettel
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
thowe
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
xlKing
Beiträge: 52
Registriert: 30. Mai 2024, 19:42
Hat sich bedankt: 5 Mal
Danksagung erhalten: 52 Mal
Kontaktdaten:

Re: Zellen / Zeilen farblich markieren

#3

Beitrag von xlKing »

Hi zusammen,

das Thema Zeile(n) markieren in der man sich gerade befindet, kommt immer mal wieder auf. Hierzu gibt es die verschiedensten Ansätze. Einer davon ist oben gezeigt. Auch ich habe hier schon einige umfangreiche Codes geschrieben, die allesamt nicht wirklich zufriedenstellend für mich waren. Entweder wurde jeweils nur eine Zeile markiert, oder das Markieren hat ewig gedauert, oder die Markierung wurde systembedingt nicht vollständig gezeichnet. Grund: Das Speichern und überschreiben evtl. vorhandener Formate sowie rückgängig machen der Markierung und Wiederherstellen der Ursprungsformate bei Zeilenwechsel kostet viel Rechenzeit.

Mein neuester Ansatz ist so einfach, wie simpel und ich möchte ihn heute hier mit euch teilen. Ein VBA-Dreizeiler genügt völlig. Man benötigt lediglich eine bedingte Formatierung. Dieser weist man eine beliebige Füllfarbe zu. Als Formel für die bedingte Formatierung genügt: =WAHR. Die bedingte Formatierung wird beim Erstellen automatisch einem beliebigen Bereich zugewiesen.

Und nun mein VBA-Trick: Ins entsprechende Tabellenmodul kommt folgender Code:

Code: Alles auswählen

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Target.Parent.Cells.FormatConditions(1).ModifyAppliesToRange Target.EntireRow
End Sub
Das wars. Wenn man nun die Zeile wechselt, wird der zugewiesene Bereich mit den Addressdaten der neuen Zeile überschrieben und die bedingte Formatierung springt an. Das klappt auch mit mehreren Zeilen. Die Ursprungsformate werden dabei beibehalten, sind halt nur gerade nicht zu sehen, wenn man sich in der Zeile befindet.

Übrigens: Wenn man nicht will, dass die aktuelle Markierung beim Drucken auftaucht. Kann man die Formel =WAHR durch eine Benutzerdefinierte Formel z.B. =GetTrue() ersetzen. Für die Benutzerformel benötigt man in einem allgemeinen Modul noch zusätzlich den Dreizeiler:

Code: Alles auswählen

Function GetTrue() As Boolean
  GetTrue = True
End Function
Damit funktioniert die Ansicht im Worksheet ebenfalls, ohne dass die aktuelle Markierung auf dem Ausdruck stört.

Gruß Mr. K.
Folgende Benutzer bedankten sich beim Autor xlKing für den Beitrag (Insgesamt 2):
d'r Bastler, Nanu
Benutzeravatar
Nanu
Beiträge: 71
Registriert: 14. Okt 2023, 20:20
Hat sich bedankt: 42 Mal
Danksagung erhalten: 15 Mal
Kontaktdaten:

Re: Zellen / Zeilen farblich markieren

#4

Beitrag von Nanu »

Hola ins Forum,
Super Sache. Eine Frage dazu, geht es auch das man nur einen Bereich wie z.B. A-F markiert oder sogar nur einzelne Zellen wie z.B. A-C-F?
Saludos und eine schöne Restwoche
Nanu
Benutzeravatar
d'r Bastler
Beiträge: 832
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 224 Mal
Danksagung erhalten: 118 Mal

Re: Zellen / Zeilen farblich markieren

#5

Beitrag von d'r Bastler »

Moin Nanu,

ungetestet, da gerade im Gespräch mit meinem Hoster ..., versuche mal die EntireRow durch Target oder Selection zu ersetzen.

lg
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
Nanu
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast