Aplicar más de 3 formatos condicionales

Hola Elsa soy yo otra vez ya me has sacado de varios apuros ( Password a una macro, Rangos con nombre numéricos)mi nombre es Jordan .
Mi pregunta es la siguiente se puede aplicar más de 3 formatos condicionales. Si se puede favor decirme como.
Pienso que se puedo pero no se, con la opción de ordenar alfabéticamente que solo permite 3, se puede aplicar más de 3 yo ya lo he hecho.
De antemano muchas gracias
Atentamente. Jordan

1 respuesta

Respuesta
1
Si estamos hablando de dar por ej, color a celdas según su valor, yo creo que solo se puede por macro.
En el ejemplo que te adjunto, compara los valores de la col B entre las filas 2 a 20 aplicando 5 formatos distintos
Sub colores()
fila1 = 2
fila2 = 20
For fila = fila1 To fila2
If Cells(fila, 2).Value < 1000 Then
Cells(fila, 2).Font.ColorIndex = 5 'azul
Else
If Cells(fila, 2).Value < 1500 Then
Cells(fila, 2).Font.ColorIndex = 3 'rojo
Else
If Cells(fila, 2).Value < 2000 Then
Cells(fila, 2).Font.ColorIndex = 43 'verde
Else
If Cells(fila, 2).Value < 3000 Then
Cells(fila, 2).Font.ColorIndex = 7 'fucsia
Else
Cells(fila, 2).Font.ColorIndex = 1 'negro
End If
End If
End If
End If
Next fila
End Sub
Espero te sirva. Hasta pronto
Elsa
Querida Elsa me dudad es ¿Esta macro la tengo establecer en botón de comandos y siempre que lo desea dar le clic?, ¿También otra pregunta como pudiera hacer esta misma macro para cualquier rango o celda solo selecciono u que aplique la condición que deseo?
De antemano muchas Gracias
Atentamente. Jordan
La macro enviada, puede ser ejecutada en cualquier hoja asignándole a un botón de comando o un atajo de teclado (desde menú Herramients, Macro, selecciona ésta y con Opciones buscá una combinación con Ctrl). Está escrita para un RANGO (B2:B20 en el ejemplo)
Para ejecutarla solo sobre la CELDA ACTIVA, ya sea con atajo de teclado o con un botón, tenés que usar esta:
Sub colores2()
If ActiveCell.Value < 1000 Then
ActiveCell.Font.ColorIndex = 5 'azul
Else
If ActiveCell.Value < 1500 Then
ActiveCell.Font.ColorIndex = 3 'rojo
Else
If ActiveCell.Value < 2000 Then
ActiveCell.Font.ColorIndex = 43 'verde
Else
If ActiveCell.Value < 3000 Then
ActiveCell.Font.ColorIndex = 7 'fucsia
Else
ActiveCell.Font.ColorIndex = 1 'negro
End If
End If
End If
End If
End Sub
Esta otra macro que te adjunto, asigna el formato al momento en que ingreses el dato. La tendrás que copiar en la HOJA donde quieras que se ejecute, desde la ventana del Editor. En la variable RangCtrl colocarás tu RANGO (en el ejemplo B2:C20)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim RangCtrl As String
Dim EnRango As Variant
RangCtrl = "B2:C20"
Set EnRango = Application.Intersect(Range(RangCtrl), Target)
If Not EnRango Is Nothing Then
If Target.Value < 1000 Then
Target.Font.ColorIndex = 5 'azul
Else
If Target.Value < 1500 Then
Target.Font.ColorIndex = 3 'rojo
Else
If Target.Value < 2000 Then
Target.Font.ColorIndex = 43 'verde
Else
If Target.Value < 3000 Then
Target.Font.ColorIndex = 7 'fucsia
Else
Target.Font.ColorIndex = 1 'negro
End If
End If
End If
End If
End If
Set EnRango = Nothing
End Sub
Queda a tu criterio establecer las condiciones (quitar o agregar otras) .
Espero que alguna sea la que necesites, si no me volvés a consultar.
Saludos
Elsa
PD) No lo preguntaste pero la lista de colores la encontrás en la ayuda de VB en el tema ColorIndex.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas