Você pode estar interessado nesta macro. Eu acho que faz exatamente o que você quer agora.
Sub ColorIndex()
Dim x As Integer
Dim y As Integer
Dim lRows As Long
Dim lColNum As Long
Dim iColor As Integer
Dim iDupes As Integer
Dim bFlag As Boolean
lRows = Selection.Rows.Count
lColNum = Selection.Column
iColor = 2
For x = 2 To lRows
bFlag = False
For y = 2 To x - 1
If Cells(y, lColNum) = Cells(x, lColNum) Then
bFlag = True
Exit For
End If
Next y
If Not bFlag Then
iDupes = 0
For y = x + 1 To lRows
If Cells(y, lColNum) = Cells(x, lColNum) Then
iDupes = iDupes + 1
End If
Next y
If iDupes > 0 Then
iColor = iColor + 1
If iColor > 56 Then
MsgBox "Too many duplicate companies!", vbCritical
Exit Sub
End If
Cells(x, lColNum).Interior.ColorIndex = iColor
For i = 1 To 5
Cells(x, lColNum + i).Interior.ColorIndex = iColor
Next i
For y = x + 1 To lRows
If Cells(y, lColNum) = Cells(x, lColNum) Then
Cells(y, lColNum).Interior.ColorIndex = iColor
For i = 1 To 5
Cells(y, lColNum + i).Interior.ColorIndex = iColor
Next i
End If
Next y
End If
End If
Next x
End Sub
Eu editei o código para também fazer as alterações de cor nas linhas horizontais até 5 células de distância da célula selecionada. Então, o que você faz é selecionar todos os nomes do banco de dados e, em seguida, executar a macro.