VBA Tools

Zaznacz duplikaty kolorami

napisane przez Oskar w dniu czwartek, 17 Listopad, 2011, w kategorii Porady - Excel

W większości przypadków z duplikatami mamy do czynienia w

bazach danych, które to są agregowane w tabelach przestawnych lub są one importowane jako tabela rekordów. Często też chcemy się ich pozbyć, o ile duplikat nic nie wnosi do obliczenia wartości jakie przedstawiają rekordy. Tym razem jednak chodzi o przydzielenie kolorów do każdego duplikatu (wielowystepowania) na zaznaczonym wcześniej obszarze. Procedura jest ograniczona do 56 podstawowej gamy kolorów arkuszowych (-2 dla białego i czarnego).


Sub zaznacz_duplikaty_kolorami_uwzg_przerwy()
Dim y&, x&, el As Range, zakres As Range, ile&
Set zakres = Selection
ile = zakres.Cells.Count
ReDim baza(1 To ile)
For Each el In zakres
x = x + 1
 el.Interior.ColorIndex = 0
 If Len(el.Value) = 0 Then baza(x) = "": GoTo przeskocz
 For y = 1 To UBound(baza)
 If baza(y) = el.Value Then
 el.Interior.ColorIndex = y + 2
 Cells(y, 1).Interior.ColorIndex = y + 2
 Exit For
 End If
 Next y
 baza(x) = el.Value
przeskocz:
Next el
Set zakres = Nothing
End Sub

Powyżej wynik na reprezentacyjnej próbce danych osadzonych w kolumnie „A”:

Sub zaznacz_duplikaty_kolorami_dla_obszarow()
Dim y&, x&, el As Range, ile&, zakres As Range, z&
Set zakres = Selection
With Application
 .ScreenUpdating = False
ile = .WorksheetFunction.CountA(zakres.Cells)
End With
ReDim baza(1 To 2, 1 To ile)
zakres.Cells.Interior.ColorIndex = 0
For Each el In zakres
 If Len(el.Value) = 0 Then GoTo przeskocz
 For y = 1 To x
 If baza(1, y) = el.Value Then
 If y >= 56 Then z = y + 2 - 56 * (y \ 56) Else z = y + 2
 el.Interior.ColorIndex = z
 Range(baza(2, y)).Interior.ColorIndex = z
 GoTo przeskocz
 End If
 Next y
x = x + 1: baza(1, x) = el.Value: baza(2, x) = el.Address
przeskocz:
Next el
Application.ScreenUpdating = True
Set zakres = Nothing
End Sub

Wynik dla obszarów bez względu na jego położenie z zapętleniem ograniczenia 56 kolorów (-2).

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.

Podziel się ze znajomymi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blip
  • Grono
  • Gwar
  • Kciuk.pl
  • LinkedIn
  • MySpace
  • OSnews.pl
  • Śledzik
  • Spis.pl
  • Technorati
  • Twitter
  • Vala.pl
  • Wahacz.pl
  • Wykop

Wpisz swój komentarz:

Comment Spam Protection by WP-SpamFree