EXCEL: Como formatar condicionalmente uma borda inferior grossa para uma linha inteira com base no valor de uma coluna? [duplicado]

1

Eu tenho as seguintes linhas ...

1   AA     12  13   4   7
1   A      12  13   5   2
1   A      12  14   5   2
1   AAA    1   15   3   1
2   AAA    1   15   3   1
2   AA     3   44   5   19
2   A      R   4    33  87
3   AA     3   3R   55  77

E estou querendo aprender como fazer formatação condicional para que, se a coluna mais à esquerda mudar de valor, eu possa adicionar uma borda inferior espessa à linha inteira. Então, por exemplo, seria assim ...

1   AA     12  13   4   7
1   A      12  13   5   2
1   A      12  14   5   2
1   AAA    1   15   3   1
-------------------------
2   AAA    1   15   3   1
2   AA     3   44   5   19
2   A      R   4    33  87
-------------------------
3   AA     3   3R   55  77

e assim por diante ...

Consegui fazê-lo funcionar, mas apenas para a primeira coluna e não formatar a linha inteira. Obrigado!

    
por fwaokda 27.12.2012 / 03:18

3 respostas

8

Você precisa ancorar as referências de coluna na fórmula para o formato condicional.

Supondo que o seu intervalo de dados começa em A1 , defina um formato condicional no intervalo A1:F1 com uma fórmula de critério $A1<>$A2 e o formato escolhido.

Em seguida, copie a formatação da linha no intervalo (usando Colar formato especial ).

    
por 27.12.2012 / 04:09
2

Supondo que sua célula superior esquerda é A1, selecione todos os dados começando em A1 e, em seguida, use esta fórmula:

=$A1<>$A2
    
por 27.12.2012 / 03:52
0

Aqui está um VBA que executará o que você está procurando.

Sub LineSep()

'   Start Location 1 lower than first range with value
Range("A2").Select

Do
    If ActiveCell.Offset(-1, 0).Value = ActiveCell.Value Then
    ActiveCell.Offset(1, 0).Select
        Else:
        Range(Selection, Selection.End(xlToRight)).Select
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlMedium
        End With
        ActiveCell.Offset(1, 0).Select
    End If

Loop Until ActiveCell.Value = ""

End Sub
    
por 28.12.2012 / 02:39