Colora células automaticamente no Excel que contêm uma fórmula

0

Como posso obter o Excel para colorir automaticamente as células que contêm uma fórmula?

Por exemplo, se a célula B4 contiver =SUM(B1:B3) , a célula B7 contiver =B4-B7 , então gostaria de poder colori-las automaticamente de forma diferente, assim o Excel se parece com isso:

Se eu mudar a célula B6 para uma fórmula, então espero que ela mude automaticamente de cor também.

    
por Richard 28.10.2017 / 10:58

3 respostas

3

Você pode usar ISFORMULA com formatação condicional para fazer isso.

De este site :

To apply conditional formatting that will highlight the cells with formulas:

  • Select cells A2:C4, with cell A2 as the active cell.
  • On the Excel Ribbon's Home tab, click the Condtional Formatting command
  • Click New Rule
  • Click Use a formula to determine which cells to format
  • Enter and ISFORMULA formula, refering to the active cell -- A2: =ISFORMULA(A2)
  • Click the Format button, and select a fill color for the cells with formulas -- gray in this example.
  • Click OK, twice, to close the windows.

Infelizmente ISFORMULA só funciona no Excel 2016 e acima.

No entanto, inspirado pelas outras respostas, percebi que você poderia criar algum VBA para emular essa função para pessoas em versões anteriores do Excel.

Para fazer isso, você precisa abrir o editor de VBA (Alt + F11), criar um novo módulo (opção de menu "Insert", depois "Module") e colocar este código no módulo:

Public Function IsFormula(ref As Range)
    IsFormula = ref.HasFormula
End Function

Salve e agora a formatação condicional funcionará.

    
por 28.10.2017 / 12:44
1

Existem duas partes para isso.

  1. Você já tem uma planilha com fórmula.
  2. Indo adiante tudo que você digitar como uma fórmula na mesma planilha.

Sugiro uma solução de VBA da seguinte forma.

Pressione ALT + F11 para acessar o editor do VBA. Inserir um módulo no menu Inserir. Vá para a janela de código e cole o código a seguir.

Sub ColorFormula()

Dim inrange As Variant
Dim incell As Range
On Error Resume Next
Set inrange = Application.InputBox(Prompt:="Please Select a Range", Type:=8)
If inrange.Rows.Count = 0 Then
    MsgBox ("No Range Selected!")
    End
End If

For Each incell In inrange
    If incell.HasFormula = True Then
        incell.Font.Color = -4165632
    End If
Next

End Sub

Agora, no painel esquerdo, clique em ThisWorkbook e selecione WorkBook SheetChange Event na janela de código. Um espaço reservado para a sub-rotina com End Sub estará disponível para você inserir seu código nele.

Cole o seguinte código nele

If Target.HasFormula = True Then
    Target.Font.Color = -4165632
End If

Neste exemplo, a cor azul é selecionada, você pode alterá-la para qualquer outra cor disponível.

Saia do editor do VBA. Agora, toda vez que você alterar uma célula em qualquer uma das planilhas dessa pasta de trabalho, o evento SheetChange será acionado e, se for a fórmula, ela será alterada para a fonte Blue.

Pressione ALT + F8 e execute a macro ColorForlmula e especifique o intervalo de células. O código será executado através de cada célula no intervalo e se a fórmula já existente for encontrada, ela deverá mudar a fonte para Azul.

    
por 28.10.2017 / 11:59
0

Esta pequena macro de eventos:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Target.HasFormula Then Exit Sub
    Cells.SpecialCells(-4123).Font.ColorIndex = 5
End Sub

irá colorir automaticamente a fonte de uma célula azul quando uma fórmula for inserida. (Ela também irá colorir todas as outras células de fórmulas azuis ao mesmo tempo)

Por ser um código de planilha, é muito fácil de instalar e usar automaticamente:

  1. clique com o botão direito do mouse no nome da guia próximo à parte inferior da janela do Excel
  2. selecione Exibir código - isso abre uma janela do VBE
  3. cole o material e feche a janela do VBE

Se você tiver alguma dúvida, tente primeiro em uma planilha de teste.

Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Para remover a macro:

  1. abrir as janelas do VBE como acima
  2. limpe o código
  3. feche a janela do VBE

Para saber mais sobre macros em geral, consulte:

link

e

link

Para saber mais sobre macros de eventos (código da planilha), consulte:

link

As macros devem estar ativadas para que isso funcione!

    
por 28.10.2017 / 16:13