Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
#28074
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.
Você não está autorizado a ver ou baixar esse anexo.
#28077
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
Você não está autorizado a ver ou baixar esse anexo.
#28078
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
#28079
Veja se ajuda. Não precisei da macro, calculei o total de acertos por uma fórmula matricial.
Você não está autorizado a ver ou baixar esse anexo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord