[Resolvido] Como contar células com cor de fundo (formatação condicional) - Visual Basic for Applications (VBA) - Portugal-a-Programar
[Resolvido] Como contar células com cor de fundo (formatação condicional)
By jtiagodias, October 6, 2008 in Visual Basic for Applications (VBA)
stou a tentar fazer uma pequena macro para contar as células que têm uma determinada cor de fundo.
Tenho uma lista de células e a cor estão as que quero contar.
Para contares as cores que são colocadas através da formatação condicional podes utilizar o seguinte exemplo:
Caso não optes pela formatação condicional, tens aqui outro:
Excel: Contar Cores das Células
Se tiveres dúvidas a implementar diz qualquer coisa.
Sempre a mesma rapidez e eficácia...
Inseri as seguintes funções para identificar as cores "condicionais". O problema é que só conta as células em Branco!!! Não distingue o verde d vermelho
=CountOfCF(T14:T21;3) "vermelho"
=CountOfCF(T14:T21;2) "branco"
=CountOfCF(T14:T21;10) "verde"
parabéns ao fórum (5*)
Não estás a usar os códigos de cores correctos. Por exemplo o vermelho é o 1 e não o 3
Vê aqui (no final) os códigos de cores:
Olá Jorge, obrigado pela dica!
mas segundo o código de cores que sugeriste tenho as cores correctas.
1-preto 2-branco 3 vermeho e 4/10 verde. ou estou a interpretar mal?
"CountOfCF - This function return the number of cells in a range that have a specified conditional format applied. This function return the number of cells in a range that have a specified conditional format applied. Set the last argument to -1 to look at all format conditions, or a number between 1 and 3 to specify a particular condition. "
A função só conta se tem, ou não, formatos condicionais, não conta as cores.
Podes utilizar a seguinte formula para verifica qual a cor que lá está, e depois utilizas um cointif() para contar de acordo com as cores (1-preto 2-branco, etc):
=ColorIndexOfCF(A1;FALSE)
Desculpa mas à pouco não li bem o problema
peço desculpa pela minha insistência, mas estou a utilizar pela 1ª vez VBA, até agora limitava-me às funçõres do excel 😳
assim, necessito mais uma vez da tua ajuda para criar a funçlão "cointif()"
LOL, cointif é countif()
Desculpa mas enganei-me a escrever.
pensei que fosse uma condição especial, pois não sei identificar a cor nos critérios?
=COUNTIF(T14:T22;???)
Fazes um =ColorIndexOfCF(A1;FALSE) na coluna B1 e depois somas a coluna B pela cor que queres, usando o CountIf()
Queres um exemplo ?
agradecia um exemplo, estou confuso!!!
Logo coloco aqui ... estou ocupado agora, ok ?
PS: Não por email
Aqui vai um exemplo: DOWNLOAD
Depois podes esconder a coluna B
Obrigado pela dica, mas não resolve o meu problema, pensei que a condição "countif()" estava directamente relacionada com as cores.
O meu problema é que tenho associado a um produto (A1) várias operações (B1;B2;B3,…). Mediante certas condições as células da coluna (B) apresentam cores. Na coluna ( C) temos a função para reconhecer as cores "ColorIndexOfCF()".
Até aqui tudo bem, mas por vezes tenho de inserir uma ou mais linhas, ex.(entre B1e B2 inserir linha),
Neste caso fico com uma Lina (B2) nova que mantém a formatação condicional na coluna B, só que fico sem a função "ColorIndexOfCF()" na célula (C2).
Podes mostrar o ficheiro ?
Claro, só não sei como colocar ficheiros no forum
Usa o www.box.net, rapidshare, etc
http://www.box.net/shared/mpiqqy23bu
Ok, agora com base no ficheiro explica o que queres.
1 - por vezes tenho a necessidade de criar linhas, ex a linha 25 do ficheiro.
2 - acresc a lina e o excel manteve a formatação condicional nas colunas "M e N"
3 - o problema está nas colunas "T e U". ficaram sem as formulas com as condições!!!
resumindo, quando acrescento uma ou mais linhas fico sem formulas nas colunas "T e U".
Então o que isso tem com a formatação condicional (contar cores, etc) ? Alteraste o método é isso ?
este é o meu ficheiro original.
contar cores era uma maneira de resolver o problema, pois ao acrescentar linhas a formatação condicional esta sempre activa, assim tinha sempre uma relaçõa cor/condição.
mas com o teu ex. o problema mantem-se:
não esta a contar cores mas sim a função que indica o codigo da cor, ou seja acrescentamos linhas e ficamos sem a função do codigo da cor.
Ok, estive a ver o ficheiro e tu não precisas código para nada. Resolve-se bem com formula, uma vez que é sabe se está dentro do prazo, fora do prazo, etc.
Por exemplo, para "concl. Prazo"
=SUM(IF(M32:M38<=N32:N38;1;0))-SUM(IF(OR(M32:M38="";N32:N38="");1;0))
Insere a formula usando CTRL+SHIFT+ENTER
Por curiosidade, baixei o ficheiro.
Percebi mal o problema, ou bastaria fazer copiar/colar as fórmulas existentes nas células de uma outra linha na colunas T e U para aquela onde o excel não as replica?
Caso fosse necessário fazer múltiplos procedimentos iguais, sempre se poderia ter uma(s) linha(s) modelo de reserva em posição abaixo da tabela, sem dados mas com as fórmulas, bastando depois, quando necessário, copiá-la e inseri-la na posição desejada e preenchendo depois os dados fixos...