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.