Corrigindo as cores das células no Excel ao alterar os valores dessas células

Corrigindo as cores das células no Excel ao alterar os valores dessas células

Aqui está um exemplo de 4 células em minha pasta de trabalho.

26  99
2   1

A pasta de trabalho é colorida de acordo com as regras 100=vermelho 0=amarelo, onde os itens mais próximos de 0 são mais amarelos e os itens mais próximos de 100 são mais vermelhos (isso é definido por uma regra de formatação condicional que atribui cores com base no valor).

Neste exemplo, 99 seria muito vermelho, 1 e 2 seriam muito amarelos e 26 teria um tom laranja.

Quero manter a mesma cor das células, mas alterar os valores nas células. Neste exemplo eu quero que eles sejam

E=0.0,Q=26  E=0.0,Q=99
E=2.10e-11,Q=2  E=1.02e-08,Q=1

(Observe como os valores do lado direito de q são iguais aos da primeira matriz)

Por causa da regra de formatação condicional, minhas cores desaparecem quando colo novos valores nelas.

Responder1

Você sempre pode adicionar 100 condições de formato com base no valor após Q=in E=0.0,Q=99. Aqui está uma macro que fará isso para qualquer célula que você selecionou, comparando cada valor de célula simples com 1 a 100 diretamente ou comparando-o com o valor após o Q=caso a primeira comparação produzir um erro.

Você pode excluir a macro depois de executá-la para não precisar salvar o arquivo como XLSM. Remova o comentário da Selection.FormatConditions.Deletelinha removendo o apóstrofo se também quiser remover as condições de formato atuais.

Isso pressupõe que seu número seja sempre um número inteiro entre 1 e 100 (como o valor da célula simples ou após o Q=). Não funcionará para valores decimais.

Sub FormatMe()
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    'Selection.FormatConditions.Delete
    Dim addr As String
    addr = Replace(Selection.Cells(1).Address, "$", "")
    For i = 1 To 100
        With Selection.FormatConditions.Add(xlExpression, Formula1:= _
            "=OR(" & addr & " = " & i & ", IFERROR(RIGHT(" & addr & _
            ", LEN(" & addr & ") - FIND(""Q"", " & addr & ", 2) - 1) = """ & i & """, FALSE))")
           .Interior.Color = RGB(255, 255 - Int(i / 100 * 255), 0)
        End With
    Next
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

Responder2

  • Suposição: você deseja usar formatação condicional (e sem VBA)
  • Suposição: A célula que você deseja colorir contém valores 'complexos' como "E=0,0,Q=26"

  • Responder: escolha um - a formatação condicional do Excel não é inteligente o suficiente para 'ler' o valor "E=0,0,Q=26" e encontrar o número 26.

    • Usar sua própria fórmula de formatação pode funcionar, mas não pode aplicar um gradiente, pois só aplica uma cor por condição, também conhecido como "se o número for 29, faça com que seja exatamente essa cor". (Pelo que eu sei - por favor, corrija-me)
    • O Excel pode extrair automaticamente o número 26 da sua célula e essa célula (vizinha) pode ser formatada (usando a célula F4 =NUMBERVALUE(RIGHT(F4,LEN(F4)-FIND(",",F4)-2)))
  • Minha sugestãoapresente seus dados de uma maneira diferente, use E e Q como cabeçalhos ou algo assim e mantenha cada número em uma célula separada.

Responder3

Use valores de colagem para que apenas os números sejam colados, caso contrário, a formatação também será colada.

informação relacionada