PplWare Mobile

Dicas de VBA – Contar Cores das Células

                                    
                                

Este artigo tem mais de um ano


Autor: Paulo Silva


  1. Miguel Goyanes says:

    Muito bom

  2. Marco Freitas says:

    Era de valor que colocassem um tutorial como fazer um macro para o Outlook, de modo a que depois de lido um email na caixa de entrada esse fosse movido automaticamente para uma pasta especifica. Ficaria muito agradecido.

  3. João Pinto says:

    Mais um bom artigo do meu amigo Jorge…

  4. vitor moreira says:

    “É importante lembrar que a alteração da cor em uma célula não origina nenhum evento e por isso o contador não é actualizado. É necessário que exista alguma edição na área definida ou alguma actualização manual (botão, evento, etc) para que funcione a 100%.”

    Há algum tempo precisei fazer um ficheiro e esta dar-me-ía imenso jeito se a actualização fosse automática… na altura tb não encontrei nenhuma descrição para a tornar automática.

    Não há uma forma qualquer de a tornar automática?

  5. Mariana says:

    Jorge, não estou conseguindo.
    Quando volto a planilha, coloco a função e seleciono as células, automaticamente volta ao MVisualBasic e mostra a seguinte mensagem: Erro de compilação: Era esperado: expressão.

    O que devo fazer?

  6. ELC says:

    Boa tarde,
    Já vi vários exemplos de contar cor, utilizando o VBA, mas uma duvida persiste, e que não consigo solucionar….
    Contar células coloridas acrescentando outra variável…
    teria de ser um ” ContarCor.SE ”
    Por exemplo contar células coloridas no intervalo A2;X2 se no intervalo A1;X1 estiver a letra C….

    Já agora, a mesma duvida mas contar fonte colorida…

    Um grande Obrigado por todas as dicas e tutoriais que têm vindo a nos fazer conhecer.

  7. Jorge Paulino says:

    Deverá ser algo como isto (não testado):

    Public Function CountColors(rng As Range, color As Integer, cellValue as String) As Integer
    Dim rg As Range
    Dim x As Integer
    CountColors = 0
    For Each rg In rng
    If rg.Interior.ColorIndex = color And rg.Value = cellValue Then
    x = x + 1
    End If
    Next
    CountColors = x

    End Function

    E depois na função:

    =CountColors(A3:E3;4;”C”)+CountColors(A2:E2;4;”C”)

    ou definir um named range (http://www.contextures.com/xlNames01.html) e utilizar:

    =CountColors(NomeDoRange;4;”C”)

  8. Jorge Paulino says:

    Tenta assim:

    Function CountColor(r As Range, lColor As Long, shiftRange As Range, shift As String) As Integer
    Dim rCell As Range
    For Each rCell In r
    If rCell.Font.ColorIndex = lColor Then
    If shiftRange.Columns(rCell.Column) = shift Then
    CountColor = CountColor + 1
    End If
    End If
    Next rCell
    End Function

    e depois:

    =CountColor(A8:BD8;3;A5:BD5;”C”)

    • ELC says:

      Boa, Grande obrigado….
      Funcionou para a cor de fonte… Para a cor de fundo, foi só acrescentar um novo modulo e alterar o “.Font.” para “.Interior.”

      Obrigado Jorge

    • Paulo Martins says:

      Boa noite Jorge,
      aproveitando a dica anterior para um trabalho urgente que preciso, dá-me erro.
      Mas passo a explicar:
      tenho uma tabela( por exemplo) onde a coluna A corresponde aos colaboradores e a coluna B tenho os vários tipos de equipamentos definidos por cores VBA (Azul, Verde, Cinza, etc) e onde consigo saber a quantidade pelas cores. Até aqui tudo bem. No entanto, preciso de saber dentro de cada tipo de equipamento, entenda-se cores, o tamanho dos mesmos (S, M, L, XL, etc). Estou a utilizar o excel 2013. Cumprimentos

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.