Formato condicional en Excel

Hola a todos. Necesito colorear una matriz en excel con 6 diferentes colores. Dependiendon del valor de cada celda (cada celda está formulada), cada celda deberá tener uno de los seis colores. Conozco la opción de formato condicional, pero sólo me da 3 posibles criterios y yo necesito 6. Alguien sabe como hacerlo. Me imagino que con alguna macro, pero yo no sé programar macros.
Hi every body. I need to colour (in Excel) a matrix with 6 diferent colours . Depending on the value of the cell, each cell will have one of six colours. Excel has this option but only for three colours. Does any body know how to solve this. I guess I could solve this with a Macro, but I don't know how to programm a Macro. Thanks!!!

1 respuesta

Respuesta
1
Copia y Pega esta macro
Sub MyMacro()
If ActiveCell.Value = 6 Then
ActiveCell.Interior.ColorIndex = 8
Else
If ActiveCell.Value = 5 Then
ActiveCell.Interior.ColorIndex = 7
Else
If ActiveCell.Value = 4 Then
ActiveCell.Interior.ColorIndex = 6
Else
If ActiveCell.Value = 3 Then
ActiveCell.Interior.ColorIndex = 5
Else
If ActiveCell.Value = 2 Then
ActiveCell.Interior.ColorIndex = 4
Else
If ActiveCell.Value = 1 Then
ActiveCell.Interior.ColorIndex = 3
End If
End If
End If
End If
End If
End If
End Sub
Saludos
Visita mi página
Para más información
Oye muchísimas gracias.
Permíteme por favor ampliar la pregunta.
La matriz es de unas 200*200 celdas.
¿Cómo puedo hacer para que la macro corra automáticamente en todas las celdas?
¿Cómo puedo saber qué número corresponde a cada color? Ya veo que el 6 es un azul, pero ¿hay algún cuadro de dónde elegir colores-números?
¿Para poner que la celda esté entre por valor e y valor como se pondría?
Muchas gracias y perdona pero es que no se nada de macros.
para que la macro corra en todas las celdas lo puedes hacer con la propiedad   Do Until.....Loop
Esta Propuedad sirve para repetir un código cuantas veces quieras egun una condición.
Fíjate que a la macro se le agegaron algunas lineas de instrucciones.
Lacondicion es que la macro debe comenzar en la celda a1, debe verificar que valor tiene y locolorea según su valor, cuando ya termina laverificacion del valor, pasa a la celda de más abajo y si la encuentra con valor, verifica el valor y la colora, y así sucesivamente hasta encontrar una celda vacía hacia abajo...
Nota: La condición es que si encuentra una celda vacía pare la macro.
Sub MyMacro()
Range("a1").Select 'Celda de inicio de la operacion
Do Until ActiveCell = "" 'Condicion de la Propiedad Do until.....Loop
If ActiveCell.Value = 6 Then
ActiveCell.Interior.ColorIndex = 8
Else
If ActiveCell.Value = 5 Then
ActiveCell.Interior.ColorIndex = 7
Else
If ActiveCell.Value = 4 Then
ActiveCell.Interior.ColorIndex = 6
Else
If ActiveCell.Value = 3 Then
ActiveCell.Interior.ColorIndex = 5
Else
If ActiveCell.Value = 2 Then
ActiveCell.Interior.ColorIndex = 4
Else
If ActiveCell.Value = 1 Then
ActiveCell.Interior.ColorIndex = 3
End If
End If
End If
End If
End If
End If
ActiveCell.Offset(1, 0).Select 'Pasar una celda hacia abajo
Loop 'termina la Propiedad Do Until....Loop
End Sub
Saludos y suerte
Sobre los colores de cada valor, nome lo se..
Puedes practicar para descubrirlo, solo cambia el numero dentro del código para ver de que color te pone.
Y abusando de tu amabilidad, una vez que se termina la columna, ¿cómo paso a la siguiente columna hasta que se acaba la matriz?
Para hacer lo que pides sonnecesarias dos macros
Una para que te repita el dodigo filapor fila y la otra para que te repita el código y te cambie de columna una ves que la primera termino..
Te paso las macros
Sub Mymacro1()
Range("a1").Select
Do Until ActiveCell = ""
If ActiveCell <> "" Then
Run ("MyMacro")
ActiveCell.End(xlUp).Offset(0, 1).Select
Selection.End(xlUp).Select
End If
Loop
End Sub
Sub Mymacro()
Do Until ActiveCell = ""
If ActiveCell.Value = 6 Then
ActiveCell.Interior.ColorIndex = 8
Else
If ActiveCell.Value = 5 Then
ActiveCell.Interior.ColorIndex = 7
Else
If ActiveCell.Value = 4 Then
ActiveCell.Interior.ColorIndex = 6
Else
If ActiveCell.Value = 3 Then
ActiveCell.Interior.ColorIndex = 5
Else
If ActiveCell.Value = 2 Then
ActiveCell.Interior.ColorIndex = 4
Else
If ActiveCell.Value = 1 Then
ActiveCell.Interior.ColorIndex = 3
End If
End If
End If
End If
End If
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Nota:
Al botón le vas a agregar MyMacro1
Esa a la ves te ejecutara la otra

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas