una - ¿como hacer para que en excel un numero salga rojo o azul segun su valor determinado?




Celda de color basada en el valor en la celda (2)

Usando una macro, he consolidado la información de varios libros de trabajo en una hoja en el nuevo libro de trabajo.

En una columna, he creado un rango llamado ColRange. Esa columna tiene números que van desde -350 a 500.

¿Cómo cambio el color de las celdas según el valor del texto en la celda?
rojo (0-500) amarillo (-5-0) verde (-350--5)


Suponga que ese valor es el número almacenado en la columna y luego:

If value >= 0 AND value <= 500 Then
    ColRange.Interior.Color = RGB(255,0,0)
ElseIf  value >= -5 Then
    ColRange.Interior.Color = RGB(255,255,200)
Else
    ColRange.Interior.Color = RGB(0,255,0)
End If

Y suponiendo que valores de más de 500 o menos de -350 o no son posibles o validados por su secuencia de comandos. Además, sus rangos se superponen un poco, ¿de qué color debería ser 0? Rojo o amarillo?


Esto es en respuesta a la pregunta original, es una simple modificación de la respuesta de Vincent:

Si se trata de un rango con nombre (usando la interfaz de usuario: Insertar, Nombre, Definir):

Dim c As Range

For Each c In Range("ColRange").Cells
    If c.Value >= 0 And c.Value <= 500 Then
        c.Interior.Color = RGB(255, 0, 0)
    ElseIf c.Value >= -5 Then
        c.Interior.Color = RGB(255, 255, 200)
    Else
        c.Interior.Color = RGB(0, 255, 0)
    End If

Next c

Si es un objeto de rango, definido en el código:

Dim c as Range

For Each c In colRange.Cells

    If c.Value >= 0 And c.Value <= 500 Then
        c.Interior.Color = RGB(255, 0, 0)
    ElseIf c.Value >= -5 Then
        c.Interior.Color = RGB(255, 255, 200)
    Else
        c.Interior.Color = RGB(0, 255, 0)
    End If

Next c

Creo que la respuesta de Vincent no funcionará porque intenta operar en todo el rango de ColRange, dentro del If Then, en lugar de operar en cada celda de a una por vez. (Por esta razón, es posible que también desee envolverlo con Application.ScreenUpdating = False





excel-vba