Aplicar cambios según valor en vba
Tengo una macro para cambiar el color según el valor. La Qüestion es que los valores pueden estar entre 0 i 1,8, según eso aplicar color según ese rango. En el caso verde1 seria entre 1.6 i 1.8, verde 2 seria 1.5, amarillo seria 1.4, naranja, 1.3 i rojo entre 0 y 1.2. Como pongo ese "entre", en vba. ¿Por otro lado la macro se puede ejecutar automáticamente según el valor introducido?, ¿Es decir que cambie de color si tener que asignarlo a un botón?
Gracias de antemano.
Te paso también las macros que uso.
Private Sub CommandButton1_Click()
fila1 = 5
fila2 = 31
col1 = 8
col2 = 8
For fila = fila1 To fila2
For columna = col1 To col2
valor = Cells(fila, columna).Value
Select Case valor
Case Is = "B"
Cells(fila, columna).Interior.ColorIndex = 6 ' amarillo
Case Is = "SUF"
Cells(fila, columna).Interior.ColorIndex = 45 'naranja
Case Is = "NOT"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Is = "EX"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Else
Cells(fila, columna).Interior.ColorIndex = 3 'rojo
End Select
Next columna
Next fila
End Sub
Private Sub Control_Click()
fila1 = 5
fila2 = 31
col1 = 15
col2 = 15
For fila = fila1 To fila2
For columna = col1 To col2
valor = Cells(fila, columna).Value
Select Case valor
Case Is = "B"
Cells(fila, columna).Interior.ColorIndex = 6 'amarillo
Case Is = "SUF"
Cells(fila, columna).Interior.ColorIndex = 45 'naranja
Case Is = "NOT"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Is = "EX"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Else
Cells(fila, columna).Interior.ColorIndex = 3 'rojo
End Select
Next columna
Next fila
End Sub
Private Sub CommandButton2_Click()
fila1 = 5
fila2 = 31
col1 = 2
col2 = 7
For fila = fila1 To fila2
For columna = col1 To col2
valor = Cells(fila, columna).Value
Select Case valor
Case Is = 1, 4
Cells(fila, columna).Interior.ColorIndex = 6 'amarillo
Case Is = 1, 3
Cells(fila, columna).Interior.ColorIndex = 45 'naranja
Case Is = 1, 5
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Is >= 1, 6
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Else
Cells(fila, columna).Interior.ColorIndex = 3 'rojo
End Select
Next columna
Next fila
End Sub
Gracias de nuevo
Gracias de antemano.
Te paso también las macros que uso.
Private Sub CommandButton1_Click()
fila1 = 5
fila2 = 31
col1 = 8
col2 = 8
For fila = fila1 To fila2
For columna = col1 To col2
valor = Cells(fila, columna).Value
Select Case valor
Case Is = "B"
Cells(fila, columna).Interior.ColorIndex = 6 ' amarillo
Case Is = "SUF"
Cells(fila, columna).Interior.ColorIndex = 45 'naranja
Case Is = "NOT"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Is = "EX"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Else
Cells(fila, columna).Interior.ColorIndex = 3 'rojo
End Select
Next columna
Next fila
End Sub
Private Sub Control_Click()
fila1 = 5
fila2 = 31
col1 = 15
col2 = 15
For fila = fila1 To fila2
For columna = col1 To col2
valor = Cells(fila, columna).Value
Select Case valor
Case Is = "B"
Cells(fila, columna).Interior.ColorIndex = 6 'amarillo
Case Is = "SUF"
Cells(fila, columna).Interior.ColorIndex = 45 'naranja
Case Is = "NOT"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Is = "EX"
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Else
Cells(fila, columna).Interior.ColorIndex = 3 'rojo
End Select
Next columna
Next fila
End Sub
Private Sub CommandButton2_Click()
fila1 = 5
fila2 = 31
col1 = 2
col2 = 7
For fila = fila1 To fila2
For columna = col1 To col2
valor = Cells(fila, columna).Value
Select Case valor
Case Is = 1, 4
Cells(fila, columna).Interior.ColorIndex = 6 'amarillo
Case Is = 1, 3
Cells(fila, columna).Interior.ColorIndex = 45 'naranja
Case Is = 1, 5
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Is >= 1, 6
Cells(fila, columna).Interior.ColorIndex = 4 'verde
Case Else
Cells(fila, columna).Interior.ColorIndex = 3 'rojo
End Select
Next columna
Next fila
End Sub
Gracias de nuevo
1 Respuesta
Respuesta de Juan Carlos González Chavarría
1