Altera a cor da célula quando um valor diferente é encontrado

1

Olá aqui. Inseri uma consulta SQL no Excel para escolher dados como o acima.

Existe uma maneira de definir o Excel para alterar automaticamente a cor de fundo sempre que encontrar um valor diferente. Por exemplo, temos o Kigongo Charles em Orange, quero que quando ele atenda ao próximo valor que é Not Kigongo Charles , ele alterará a cor do Background para qualquer outra cor. isto é, quando atinge KITAYIMBWA ROBERT , muda, então quando alcança MBULABANTU LAWRENCE , muda novamente para qualquer cor aleatória. Assim como isso. Estou usando o Excel 2016

Qualquer trabalho será muito apreciado

    
por Brian 23.02.2017 / 12:34

1 resposta

0

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.

    
por 23.02.2017 / 12:38