Notifications
Clear all

Alteração de Macro

11 Posts
3 Usuários
0 Reactions
1,653 Visualizações
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Macro normal. É possível alterar a macro abaixo de modo a "atuar" em célula formatada. :D

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

=CountCcolor(F6: F20;H1

 
Postado : 09/07/2014 9:13 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!!

Eu não entendi muito bem, seria as células com formatação do excel ao usar tal UDF a mesma contar a cor da formatação?

Att

 
Postado : 09/07/2014 10:30 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Porem não vale para células coloridas via formatação condicional

 
Postado : 09/07/2014 10:48 am
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Boa tarde
Não é macro, é Udf. Células pintadas sem formatação, Ok. Com formatação aqui não contou.

 
Postado : 09/07/2014 11:06 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

UDF (Função definida/montada pelo usuário) e uma rotina/macro em forma de função.
Toda atribuição de cor/borda/tipo fonte em uma célula é uma formatação;
porem se o que quis dizer é

Com Formatação Condicional....

então como dito anteriormente; essas rotinas/macro/UDF's não funcionam para células coloridas pela formatação condicional.

 
Postado : 09/07/2014 12:44 pm
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Ok. Tem como escrever ou disponibilizar uma udf que conte células formatadas?

 
Postado : 09/07/2014 3:53 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

É um pouco mais complexo que suaUDF, mas tem um exemplo parabaixar, procure dar uma boa estudada.

Contar Células Coloridas pela Formatação Condicional
http://www.exceldoseujeito.com.br/2010/ ... ndicional/

[]s

 
Postado : 09/07/2014 4:23 pm
(@dimorais)
Posts: 431
Honorable Member
Topic starter
 

Mauro, agradeço a contribuição. Na verdade tenho essa arquivada na minha maquina. Devido aos quase 10 G da minha plan de trabalho, precisava de uma solução mais "leve". A plan de trabalho roda hoje com uns 90 códigos e uma infinidade de formulas. :D

 
Postado : 09/07/2014 6:40 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Desculpe, não consegui editar a anterior.
Queria ressaltar que o o link proposto tem uma solução que era muito similar a que o guru CPearso dispos na pagina http://www.cpearson.com/excel/colors.aspx ;porem após uma reedição da pagina foi afastada a rotina proposta e adicionado uma nota de que não funciona em Cores resultado de Condicional.
Ainda não encontrei ou consegui algo que realmente funcione para todas as formatações condicionais.
Testei o exemplo do site e tambem ainda não consegui o retorno que esperava.
Espero que consigam.

 
Postado : 09/07/2014 6:55 pm
(@edcronos)
Posts: 1006
Noble Member
 

uma maneira é adaptar as formulas das condicionais para uma varredura pelo próprio vba
para ficar mais rapido pode usar um array para conter os dados e o vba varrer esse array
em uma de minhas macros com array se faz 12 setores na metade do tempo que sem array leva para fazer 1 setor

mas pelo que percebi qualquer coisa como função deixa a planilha meio pesada por causa da constante troca de dados entre excel e vba

 
Postado : 09/07/2014 7:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Reinaldo, apaguei o post incompleto e editei o outro pois estava dando erro no link que postou.
Eu tambem já havia visto este site, e de fato tem uma Nota:
NOTE: These functions work only with Excel's 56 color pallet. They do not support theme colors or colors not in the 56 color pallet, or colors that are the result of Conditional Formatting...
Revendo alguns tópicos dos Foruns que participo, em 02/2011 no tópico abaixo cheguei a citar sobre a improvável captação e diferença da formatação condicional nas versões superiores a v 2003:
TextBox retorna cor de preenchimento da Celula
http://www.tomasvasquez.com.br/forum/vi ... ions#p4576
"Quanto a questão, infelizmente, pelo menos no Excel 2003 não sei nas versões posteriores, é uma limitação, a captação da cor de fundo de uma célula é DIFERENTE quando utilizamos a opção "BALDE" da Cor de Fundo da Formatação Condicional, o Excel só interpreta o fundo Branco e não a cor definida pela formatação condicional.
Exemplo :
Pela formatação normal (Balde) utilizamos : .Interior.Color
Pela Formatação Condicional utilizamos : .FormatConditions.Item(1).Interior.Color, aonde o numero "1" corresponde a primeira Condição da Formatação Condicional, e como no excel 2003 só podemos utilizar 3 condições sem utilizar VBA ou outros recursos, utilizamos 1, 2 ou 3."

No link que sugeri, ele afirma: "Bem, caros leitores, existe sim a possibilidade de fazer uma contagem de células que são “coloridas” pela formatação condicional.", não cheguei a testar o exemplo que ele disponibilizou, quando for possivel analiso mais detalhadamente.

Encontrei estes links onde dizem ser possivel tambem a contagem ou identificação da Formatação Condicional, vou deixar aqui assim quem tiver interessado e com um pouco mais de tempo disponivel possa testar:
Excel: Contar Cores na Formatação Condicional - http://www.jorgepaulino.com/2011/01/exc ... tacao.html
Excel: Verificar a Cor na Formatação Condicional - http://www.jorgepaulino.com/2011/02/exc ... tacao.html

Neste, não fala de macros, mas um dos novos tipos de Formatação Condicional no excel 2007, e é devido a estas diferenças que tambem acho pouco provável conseguir captar todo o tipo de formatação condicional:
Formatação condicional no Excel 2007 - http://www.linhadecodigo.com.br/artigo/ ... -2007.aspx

Espero que ajude.

[]s

 
Postado : 09/07/2014 8:29 pm