Notifications
Clear all

Atualizar sem teclar Enter

9 Posts
3 Usuários
0 Reactions
4,719 Visualizações
(@alvaroplda)
Posts: 6
Active Member
Topic starter
 

Olá Pessoal, eu tenho uma função que me retorna quantas células (em um determinado intervalo) estão pintadas com uma determinada cor.
Ela funciona assim:
=ContaCor(Intervalo;Cor)

O problema é que ela não está atualizando automaticamente se eu troco a cor de fundo de uma das células do intervalo. Atualiza apenas quando eu clico para editar a fórmula e teclo ENTER.
Existe algum jeito dessa "atualização" ser automática? Ou todas as fórmulas que criamos só atualizam-se depois do ENTER?

Obrigado

 
Postado : 01/04/2013 10:51 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde alvaro,

Pressione F9 e verifique se atualiza. Se atualizar, o cálculo automático do seu Excel está desabilitado, senão temos que ver a fórmula no VBA que deve estar acionando no change da célula.

Qualquer coisa da o grito.
Abraço

 
Postado : 01/04/2013 11:48 am
(@alvaroplda)
Posts: 6
Active Member
Topic starter
 

Boa tarde Bernardo,

Então, quando eu pressiono F9 ela não atualiza também. Atualiza apenas quando eu dou 2 clicks nela, como se fosse editar, e pressiono ENTER em seguida.

Achei uma função que me serve melhor do que a que falei no post. Agora estou trabalhando com essa:

Function qual_cor(faixa As Range) As Integer
qual_cor = faixa.Interior.ColorIndex
End Function

Ela me dá um valor numérico de acordo com a cor do fundo da célula em questão.

Se existir você souber um jeito de atualiza-la automaticamente, serei eternamente grato.

Valeu,

 
Postado : 01/04/2013 11:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde Alvaro,

Qual o intervalo que quer contar as cores e qual a célula vai ficar a for a ser contada?

Abraço

 
Postado : 01/04/2013 12:22 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Utilize o application.volatile, assim qq alteração na planilha a função se recalcula.

Function qual_cor(faixa As Range) As Integer
application.volatile
qual_cor = faixa.Interior.ColorIndex
End Function
 
Postado : 01/04/2013 12:24 pm
(@alvaroplda)
Posts: 6
Active Member
Topic starter
 

Reinaldo,

Adicionar o application.volatile realmente me ajudou muito!
No entanto o excel não reconhece a alteração da cor de fundo como uma alteração na planilha e ainda assim eu tenho que digitar algo em uma célula qualquer para as função se recalcular.
Existe algum jeito de ela se recalcular apenas quando altero a cor de fundo da célula em questão?
Abraços

 
Postado : 01/04/2013 12:47 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Realmente não havia atentado a essa particularidade;
talvez vc possa utilizar, no modulo "esta pasta de trabalho", a rotina abaixo; assim o simples mudar de celula já refaz o calculo da planilha

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Calculate
End Sub
 
Postado : 01/04/2013 1:08 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Alvaro, o que acontece é que o recurso Formatação não pertence a nenhum Evento da planilha, ou seja ele não é capturado quando alteramos tanto as cores como tipo de fonte, tamanho, então teriamos de driblar utilizando o evento Selection_Change, no link abaixo tem algumas dicas, principalmente nesta parte que citei acima, de uma olhada nos itens :

Color Functions In Excel
http://www.cpearson.com/excel/colors.aspx
Color Change And Calculation
Tradução da primeira parte :
"Excel normalmente calcula a fórmula numa célula quando a célula na qual a fórmula que depende mudanças.
......................
No entanto, o Excel não considera a mudança de cor de uma célula para ser significativo para cálculo, e, portanto, não vai, necessariamente, recalcular uma fórmula, quando uma cor de célula é alterado.
..........................."

Simulating A Color Change Event

O dia ta corrido, não vai dar para testar agora, quase não consigo de digitar esta resposta, ó dia ..... e minhas férias é só o ano que vem

[]s

 
Postado : 01/04/2013 1:10 pm
(@jorudess)
Posts: 0
New Member
 

Desculpa desenterrar este tópico, mas alguém conseguiu fazer funcionar este código do CPearson? Eu tô aprendendo agora sobre VBA então não entendi o que tenho que fazer com a dica Simulating A Color Change Event, devo criar uma nova macro com este código? Devo inserir este código dentro da minha function que conta as celulas coloridas?

 
Postado : 15/02/2017 6:32 pm