Questão Alterar a cor da célula quando um valor diferente é encontrado


enter image description here

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

Existe uma maneira que eu posso definir o Excel para alterar automaticamente a cor de fundo cada vez que encontrar um valor diferente. Por exemplo, nós temos Kigongo Charles em laranja, eu quero que quando ele atende o próximo valor que é Não Kigongo Charles, muda a cor de fundo para qualquer outra cor. ou seja, quando atinge KITAYIMBWA ROBERT, muda quando chega MBULABANTU LAWRENCE, muda de novo para qualquer cor aleatória. Assim como isso. Divertido Excel 2016

Qualquer trabalho em torno será muito apreciado


1


origem




Respostas:


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.


0



Não ... Eu vou estar usando este modelo em diferentes bancos de dados, mas o formato de dados é o mesmo. Isso significa que os dados serão sempre diferentes. Se eu tiver John, Mike e Phillip em um banco de dados, em outros posso ter Brian, Ramon, Charlie e Ian. Eu quero que a mudança de cor se baseie nos nomes. (Como na imagem, eu quero a mudança de cor para basear na primeira coluna) - Brian
Talvez alguém possa me ajudar com Macro neste site ligação  O que eu quero é algo assim, mas estou deixando de personalizá-lo. - Brian
@Brian Oh ok eu entendo agora. muito boa pergunta eu vou ver o que eu posso fazer desde que eu acho isso interessante também. - RamonRobben
@Brian O que você gostaria de ter mudado nessa macro? - RamonRobben
@ Brian Eu mudei os códigos para agora também cor 5 células à direita dos nomes. - RamonRobben