una - Colores de fondo de múltiples celdas en hojas de cálculo de Excel
excel colorear celda si cumple condicion (4)
Excel tiene una opción de Formato condicional ... en el menú Formato que le permite cambiar el estilo / color / fuente / lo que sea de una celda dependiendo de su valor. Pero solo permite tres condiciones.
¿Cómo puedo hacer que Excel muestre, por ejemplo, seis colores de fondo de celda diferentes según el valor de la celda? (Por ejemplo, haga que la celda se vuelva roja si el valor es "Rojo", y azul si es "Azul", etc.)
Deberá escribir algo en VBA.
Vea el ejemplo aquí: Get Around supera el límite de los criterios 3 en el formato condicional :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim icolor As Integer
If Not Intersect(Target, Range("A1:A10")) is Nothing Then
Select Case Target
Case 1 To 5
icolor = 6
Case 6 To 10
icolor = 12
Case 11 To 15
icolor = 7
Case 16 To 20
icolor = 53
Case 21 To 25
icolor = 15
Case 26 To 30
icolor = 42
Case Else
''Whatever
End Select
Target.Interior.ColorIndex = icolor
End If
End Sub
Puede usar macros de VBA para hacer esto ...
aquí hay una macro de vba que podría ser mejor si se necesitan muchos casos http://chandoo.org/wp/2008/10/14/more-than-3-conditional-formats-in-excel/
necesita preformatear ''n'' celdas con la forma en que desea formatear todo su rango. y luego usa la macro en esa url para obtener el efecto.
pon esto en un módulo en tu proyecto de VBA. A continuación, puede resaltar un rango en una hoja y ejecutar el sub desde la opción de menú Herramientas> Macro> Macros para colorear cada celda en el rango seleccionado.
Public Sub ColorCells()
Dim cell, rng As Range
Dim color As Integer
Dim sheet As Worksheet
Application.ScreenUpdating = False
Application.StatusBar = "Coloring Cells"
Set rng = Application.Selection
Set sheet = Application.ActiveSheet
For Each cell In rng.cells
Select Case Trim(LCase(cell))
Case "blue"
color = 5
Case "red"
color = 3
Case "yellow"
color = 6
Case "green"
color = 4
Case "purple"
color = 7
Case "orange"
color = 46
Case Else
color = 0
End Select
sheet.Range(cell.Address).Interior.ColorIndex = color
Next cell
Application.ScreenUpdating = True
Application.StatusBar = "Ready"
End Sub
Si los usuarios ingresan nuevos nombres de colores en las celdas, puede poner esto en el código de la hoja en el proyecto de VBA para colorear las celdas a medida que el usuario ingresa los nombres de los colores en las celdas
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.cells.Count > 1 Then Exit Sub
Dim color As Integer
Select Case Trim(LCase(Target))
Case "blue"
color = 5
Case "red"
color = 3
Case "yellow"
color = 6
Case "green"
color = 4
Case "purple"
color = 7
Case "orange"
color = 46
Case Else
color = 0
End Select
Target.Interior.ColorIndex = color
End Sub
EDITAR: Se agregó la función Recortar alrededor de la expresión de la declaración de caso para probar, de modo que los espacios iniciales / finales accidentales en las celdas se ignoran :)
Excel 2007 permite más de tres condiciones. Citando de esta página de Microsoft :
EDITAR: Ah, hay una "característica" en el código de enlace: los paréntesis en un enlace citado entre paréntesis no se manejan correctamente. Ese enlace es: http://msdn.microsoft.com/en-us/library/bb286672(office.11).aspx
Otros beneficios de los cambios al formato condicional en Excel 2007 son la capacidad de especificar más de tres condiciones, reordenar condiciones y tener más de una condición resuelta en Verdadero.
De otra manera. estás atascado con alternativas desordenadas como se describe, me temo.