Formatowanie warunkowe i wyróżnianie aktywnego wiersza

by Marcin

Formatowanie warunkowe i wyróżnianie aktywnego wierszaOd czasu do czasu przydaje się możliwość wyróżnienia (podświetlenia) aktywnego wiersza lub kolumny. Dzisiaj napiszę o bardzo prostej metodzie pozwalającej osiągnąć ten efekt. Wykorzystamy formatowanie warunkowe oraz kilka linijek kodu VBA.


Doskonale wiesz, że korzystając z formatowania warunkowego możesz zmienić format (wyróżnić) komórki spełniające określone kryteria. W naszym przypadku, zaznaczone muszą zostać tylko te komórki, które leżą w wierszu, w którym znajduje się aktywna komórka. Nasze, przykładowe, dane wyglądać będą tak, jak na rysunku poniżej.

Formatowanie warunkowe i wyróżnianie aktywnego wiersza

Zaznacz interesujący Cię zakres komórek i wybierz z menu Formatowanie warunkowe. Jako warunek wybierz „formuła jest” i wprowadź następującą formułę.

= WIERSZ(C9)=aktywnywiersz

Formatowanie warunkowe i wyróżnianie aktywnego wiersza

Uwaga: Adres komórki po lewej stronie formuły (u mnie C9) musi odpowiadać AKTYWNEJ KOMÓRCE zaznaczonego zakresu. Spójrz na rysunek poniżej. Widać na nim, że w zaznaczonym obszarze jedna komórka (jeżeli nic po drodze nie „namieszasz” będzie to komórka w lewym górnym rogu zakresu) nie jest pokolorowana (nie ma niebieskiego tła). Ta właśnie komórka jest komórką aktywną i adresu tej właśnie komórki powinieneś użyć w formatowaniu warunkowym. Jak doskonale widać, w naszym przykładzie, jest to komórka C9.

Formatowanie warunkowe i wyróżnianie aktywnego wiersza

Zapis WIERSZ(C9)=aktywnywiersz oznacza mniej więcej tyle, że komórka wybranego zakresu zostanie sformatowana jeżeli numer wiersza tej komórki równy jest wartości przechowywanej w zdefiniowanej nazwie aktywnywiersz.

To, co teraz musisz zrobić to zdefiniować tę nazwę i znaleźć sposób w jaki przypisywać jej numer wiersza aktywnej komórki. Na początek zdefiniuj więc nową nazwę i nadaj jej, na początek, po prostu wartość zero.

Formatowanie warunkowe i wyróżnianie aktywnego wiersza

Na koniec, musisz w jakiś sposób zmieniać, w zależności o wiersza, w którym znajduje się aktywna komórka, wartość przypisaną tej nazwie. Wykorzystamy w w tym celu VBA.

Uruchom edytor VBA i dla arkusza, w którym chcesz podświetlać wiersze wprowadź kod:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveWorkbook.Names("AktywnyWiersz").RefersTo = "=" & ActiveCell.Row
End Sub

Jeżeli chciałbyś, aby komórki podświetlane były tylko wtedy kiedy poruszasz się w ramach swojego zakresu możesz zmienić nieco kod, który mógłby wyglądać następująco (dla naszego przykładu):


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("C9:L30")) Is Nothing Then
ActiveWorkbook.Names("AktywnyWiersz").RefersTo = "=" & ActiveCell.Row
End If
End Sub

Efekt docelowy wygląda mniej więcej tak:

Formatowanie warunkowe i wyróżnianie aktywnego wiersza

Marcin

Download

{ 42 comments… read them below or add one }

Leave a Comment

Previous post:

Next post: