Página 1 de 1

Contar Célula Colorida e formatação Condicional

Enviado: 07 Nov 2017 às 10:33
por Andersonrsvieira
Bom dia Pessoal,

Preciso de 2 ajudas referente a formatação condicional e ref. contar célula colorida.

Ref. a formatação condicional Tenho uma planilha onde eu devo colocar o resultado e a formatação condicional colorir os nºs das apostas que acertaram. Eu fiz uma formatação condicional para cada célula do resultado. gostaria de saber se é possível fazer uma formatação condicional para todas as células resultado de uma vez.

Para contar célula colorida fiz a VBA e utilizo a fórmula ContaCelulaColoridaFormatCond($E$2;F28:M28))

Mas utilizando esta fórmula a planilha fica muito lenta para eu digitar as apostas. Tem alguma outra forma de contar as células colorida sem utilizar a VBA?

Desde já agradeço.

Re: Contar Célula Colorida e formatação Condicional

Enviado: 07 Nov 2017 às 12:16
por Deciog
Andersonrsvieira

Sobre formatação condicional, confere.

Se minha resposta foi útil, clique em obrigado é uma forma de agradecimento da ajuda

Se você Visitante Também gostou e foi útil pode clique em obrigado

Decio

Re: Contar Célula Colorida e formatação Condicional

Enviado: 07 Nov 2017 às 13:29
por Andersonrsvieira
Decio,

Muito Obrigado, ajudou e muito na formatação condicional.

Mas agora tenho um problema com o conta célula colorida.

Agora como é fórmula não funciona a função, vc consegue me ajudar?

Eu criei uma vba com a estrutura abaixo e utilizava a fórmula: =SE(C26="";"";ContaCelulaColoridaFormatCond($E$2;F26:M26))

Option Explicit

Public Function ContaCelulaColoridaFormatCond(rngColorInfo As Range, Intervalo As Range) As Long
Dim rConta As Range

For Each rConta In Intervalo.Cells
If RetornaCorDeFundoCondicional(rConta) = rngColorInfo.Interior.ColorIndex Then
ContaCelulaColoridaFormatCond = ContaCelulaColoridaFormatCond + 1
End If
Next

End Function

Public Function RetornaCorDeFundoCondicional(ByVal rngCelula As Range) As Long
Dim FormatCondition As FormatCondition

RetornaCorDeFundoCondicional = -1

For Each FormatCondition In rngCelula.FormatConditions
If StatusDoFormatoCondicional(FormatCondition) Then
If Not IsNull(FormatCondition.Interior.ColorIndex) Then
RetornaCorDeFundoCondicional = FormatCondition.Interior.ColorIndex
End If
Exit For
End If
Next FormatCondition

End Function

Public Function StatusDoFormatoCondicional(ByVal FormatCondition As FormatCondition) As Boolean
Dim FormulaTransformada As String
Dim Operator As Long
Dim Formula1 As String
Dim Formula2 As String
Dim Cell As Range
Dim CellValue As String

Application.Volatile
FormulaTransformada = FormatCondition.Formula1
Set Cell = FormatCondition.Parent

On Error Resume Next
Operator = FormatCondition.Operator
On Error GoTo 0

If Operator > 0 Then
Formula1 = FormatCondition.Formula1
On Error Resume Next
If Left(Formula1, 1) = "=" Then Formula1 = Mid(Formula1, 2)
Formula2 = FormatCondition.Formula2
On Error GoTo 0
If Left(Formula2, 1) = "=" Then Formula2 = Mid(Formula2, 2)
If VarType(Cell.Value) = vbString Then
CellValue = """" & Cell.Value & """"
Else
CellValue = CDbl(Cell.Value)
End If
Select Case Operator
Case xlBetween: FormulaTransformada = "AND(" & Formula1 & "<=" & CellValue & "," & CellValue & "<=" & Formula2 & ")"
Case xlNotBetween: FormulaTransformada = "OR(" & Formula1 & ">" & CellValue & "," & CellValue & ">" & Formula2 & ")"
Case xlEqual: FormulaTransformada = CellValue & "=" & Formula1
Case xlNotEqual: FormulaTransformada = CellValue & "<>" & Formula1
Case xlGreater: FormulaTransformada = CellValue & ">" & Formula1
Case xlLess: FormulaTransformada = CellValue & "<" & Formula1
Case xlGreaterEqual: FormulaTransformada = CellValue & ">=" & Formula1
Case xlLessEqual: FormulaTransformada = CellValue & "<=" & Formula1
End Select
Else
'Caso a formatação condicional seja uma fórmula
FormulaTransformada = FormatCondition.Formula1
FormulaTransformada = Replace(FormulaTransformada, ";", ",")

'Traduzindo a função SE para o inglês
FormulaTransformada = Replace(FormulaTransformada, "SE(", "IF(")

'Adicione traduções para as funções que você usar
'Exemplos:
'FormulaTransformada = Replace(FormulaTransformada, "MÉDIA(", "AVG(")
'FormulaTransformada = Replace(FormulaTransformada, "SOMA(", "SUM(")
'FormulaTransformada = Replace(FormulaTransformada, "SOMASE(", "SUMIF(")

'FormulaTransformada = Application.ConvertFormula(FormulaTransformada, xlA1, xlR1C1, , ActiveCell)
'FormulaTransformada = Application.ConvertFormula(FormulaTransformada, xlR1C1, xlA1, xlAbsolute, Cell)
FormulaTransformada = Application.ConvertFormula(FormulaTransformada, xlA1, xlR1C1, xlRelative, FormatCondition.AppliesTo.Resize(1, 1))
FormulaTransformada = Application.ConvertFormula(FormulaTransformada, xlR1C1, xlA1, xlRelative, Cell)
End If
StatusDoFormatoCondicional = Application.Evaluate(FormulaTransformada)

End Function



Grato

Re: Contar Célula Colorida e formatação Condicional

Enviado: 07 Nov 2017 às 14:31
por babdallas
Veja se ajuda. Não precisei da macro, calculei o total de acertos por uma fórmula matricial.