Excel - evaluar formato condicional en macro

 
Vista:

evaluar formato condicional en macro

Publicado por jorge (67 intervenciones) el 28/09/2009 18:01:50
Hola, implementando una macro me he encontrado con el problema de que no sé como evaluar si determinadas celdas muestran un color de fuente por haberse dado una condición de formato condicional. Me explico:

tengo una columna en la que todas las celdas tienen asignadas dos condiciones de formato, en estas condiciones a su vez hay fórmulas que hacen referencia a otras celdas. De forma que algunas de ellas tienen el texto de color negro y otras de color rojo y necesito saber cuántas de cada tipo hay corriendo una macro.

Aunque lo que escribo en el código no es realmente lo que quiero conseguir en mi macro, lo he simplificado al máximo para evitar complicar más el asunto, de forma que básicamente lo que me gustaría es iniciar dos contadores para que i cuente todas las celdas con texto en rojo desde una posición dada hasta la fila 1 y k cuente las celdas cuya fuente sea de cualquier otro color.

Sé que la condición no es correcta, pero no sé como solucionarlo.

While ActiveCell.Row > 1
If ActiveCell.Font.ColorIndex = 3 Then
i = i + 1
Else
k = k + 1
End If
Cells(ActiveCell.Row - 1, ActiveCell.Column).Select
Wend

El inconveniente es que la consulta no es capaz de diferenciar en función del color establecido por la condición, sino que en todos los casos el color por defecto es automático, por lo tanto no funciona. He leido en varios foros que es un tema algo complejo pero no he conseguido una solución.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:evaluar formato condicional en macro

Publicado por jcs (494 intervenciones) el 28/09/2009 22:00:41
Muy buenas, la verdad es que no sé la respuesta. Efectivamente es como dices, evalúa el color por defecto, no el que muestra. Pero, ¿por qué no evalúas tú la condición en la macro, en lugar de evaluar el color?

No sé si me explico, si por ejemplo el formato condicional es que el fondo sea rojo en el caso de ser superior a 1000, comprueba en la macro si el valor de esa celda es mayor a 1000.

Espero que te sirva de algo.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:evaluar formato condicional en macro

Publicado por jorge (67 intervenciones) el 29/09/2009 09:07:16
Hola, efectivamente esa podría ser una solución, pero no es la que más me gusta, preferiría hacerlo como expliqué al principio, ya que no todas las fórmulas son iguales y tendría que poner diferentes condiciones y argumentos en los bucles. A mi me llega la hoja de cálculo coloreada, y así es como debería tratarla, sin atender a la programación de la propia hoja.

Un saludo y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

evaluar formato condicional en macro

Publicado por Zacarias (1 intervención) el 03/05/2020 21:41:58
Prueba algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function GetColorCondicional(ByVal celda As Range)
 
    If celda.FormatConditions.Count = 0 Then Exit Function
 
    If CondicionActiva(celda) Then
        GetColorCondicional = celda.FormatConditions(1).Interior.ColorIndex
    Else
        GetColorCondicional = celda.Interior.ColorIndex
    End If
 
    Select Case GetColorCondicional
        Case 2
            GetColorCondicional = "BLANCO"
        Case 4
            GetColorCondicional = "VERDE"
        Case 5
            GetColorCondicional = "AZUL"
        Case Else
            GetColorCondicional = "OTRO"
    End Select
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar