Ir ao conteúdo
  • Cadastre-se

Excel Usar cor da fonte como condição | Excel


Ir à solução Resolvido por Basole,

Posts recomendados

A formatação foi feita através do VB, segue código.

 

Sub Aprovacao()
Dim DataEvento As Date

DataAprovacao = Plan1.Cells(4, 8).Value
DataEvento = Plan1.Cells(4, 1).Value

'DataAprovacao
a = 4
'DataEvento
b = 4
Do While DataEvento <> Empty

    If DataEvento - 48 < Now Then
    
        Plan1.Cells(a, 8).Font.ColorIndex = 3
    
    End If
    
a = a + 1
b = b + 1
DataAprovacao = Plan1.Cells(a, 8).Value
DataEvento = Plan1.Cells(b, 1).Value

Loop

End Sub


 

Link para o comentário
Compartilhar em outros sites

voce pode usar essa udf (formula),  para contar as células coloridas: 

Function CountCcolor(range_data As Range, criteria As Range) As Long
    Dim datax As Range
    Dim xcolor As Long
    xcolor = criteria.Interior.ColorIndex
    For Each datax In range_data
        If datax.Interior.ColorIndex = xcolor Then
            CountCcolor = CountCcolor + 1
        End If
    Next datax
End Function

Fonte: https://support.microsoft.com/en-us/help/2815384/count-the-number-of-cells-with-specific-cell-color-by-using-vba

 

image.png.9ca36547510fd1f84479f8235e6b1b7b.png

..onde: 

C2:C51 é o intervalor que sera contado

F1 a cor que sera veriifcada

 

Link para o comentário
Compartilhar em outros sites

@Basole  A formula funcionou direitinho, porém, preciso que conte através da cor da fonte e não do interior.

Mudei no código onde estava 'Interior' passei para 'Font' e agora funciona da maneira que preciso. 

Um único problema que notei é que para a fórmula ser atualizada, é necessário que abra a planilha novamente. Tem alguma maneira de mudar isso?

Link para o comentário
Compartilhar em outros sites

@LarissaGontijo sim. Esta udf conta através da cor da fonte.

Public Function CountFontColour(Range1 As Range, Range2 As Range) As Double
Application.Volatile
Dim rng As Range
For Each rng In Range1
    If rng.Font.Color = Range2.Font.Color Then
        CountFontColour = CountFontColour + 1
    End If
Next
End Function

 =CountFontColour(H4:H10;C1

 

Na fórmula acima, H4:H10 é o intervalo que você deseja usar e C1 é a célula com uma cor de fonte específica que você deseja contar.

 

E aqui você 'chama' a função dentro do seu código.

Plan1.Cells(2, 1).Value = CountFontColour(Plan1.Range(Plan1.Cells(4, 8), Plan1.Cells(a, 8)), Plan1.Range("C1"))
'                        * ALTERE OS ENDEREÇOS DAS CELULAS ACIMA DE ACORDO COM A SUA PLANILHA 

 * Coloque no final da sua macro 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Solução

Vamos la....

 

Plan1.Cells(2, 1).Value = CountFontColour(Plan1.Range(Plan1.Cells(4, 8), Plan1.Cells(a, 8)), Plan1.Range("C1"))

 

Detalhando.... 

Plan1.Cells(2, 1).Value  =>  A2, é a celula que receberá o resultado da contagem da cor

 

Plan1.Range(Plan1.Cells(4, 8), Plan1.Cells(a, 8))  =>  H4:HX,  é o intervalo que você deseja verificar.

 

Plan1.Range("C1")  =>  C1, é a célula com uma cor de fonte específica que você deseja contar.

 

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...