Notifications
Clear all

Contagem de celulas por cor de fundo e mais uma variável

5 Posts
3 Usuários
0 Reactions
1,249 Visualizações
(@juaum)
Posts: 3
Active Member
Topic starter
 

Olá, colegas do fórum.

Sou um usuário básico de excel e gostaria de pedir a ajuda dos colégas para resolver um problema que estou tendo na minha planilha de controle.

Eu estou usando o vba da pagina da microsoft para contar as células com as mesmas cores de fundo. E uso o Contar.Se para contar quantos células eu tenho com a mesma palavra.

Necessito de ajuda para criar um script para contar a cor de fundo mais uma variavel (palavra), por exemplo quantas células vermelhas estão escritas vendido, e quantas células verdes estão escritas vendido.

O script usado para contar as cores atualmente é esse

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

Agradeço desde já pela colaboração de todos!

 
Postado : 26/11/2013 8:22 am
(@gtsalikis)
Posts: 2373
Noble Member
 

veja se é isso:

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

testei dessa forma:

=CountCcolor(A1:A10;C1;"teste")

 
Postado : 26/11/2013 10:08 am
(@juaum)
Posts: 3
Active Member
Topic starter
 

veja se é isso:

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

testei dessa forma:

=CountCcolor(A1:A10;C1;"teste")

Muito obrigado pela resposta!

Era isso mesmo que eu precisava, porém se eu eu inserir o texto e depois mudar a cor da célula, ele não conta a célula.
Teria como mudar isso?

 
Postado : 06/12/2013 10:51 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Isso eu não responder, sei pouco de VBA. Vamos ver se o pessoal que manja responde.

 
Postado : 08/12/2013 9:29 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A função somente é calculada/recalculada quando há uma alteração que "gere" o evento de calculo (calculate), porem a inclusão/alteração de uma cor de fundo não gera essa atividade.
Então pode-se, a cada alteração de cor pressionar F9, isso força o calculo e a contagem será alterada; ou talvez no evento de alteração de seleção forçar esse recalculo

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

Nota: a cada alteração de célula/coluna a planilha será calculada, dependendo do tamanho/formulas envolvidas poderá gerar uma lentidão na mesma.

 
Postado : 09/12/2013 5:02 am