Ir para o conteúdo
Pennafortt

Macro não reconhece formatação

Mensagens Recomendadas

Pennafortt

Boas

A macro abaixo, foi tirada de outro post aqui do portugal a programar. Afim de atender minha necessidade, queria saber como fazer para que a mesma reconhecesse que o valor em T4, é produto de formatação condicional e fizesse a contagem e somatório.

Option Explicit
Dim ValorT4 As Integer
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$T$4" Then
If Target.Value = 0 Then
If ValorT4 > 0 Then
Range("B1").Offset(ValorT4 - 1, 0).Value = 1 + Range("B1").Offset(ValorT4 - 1, 0).Value
End If
Else
ValorT4 = Target.Value
End If
End If
End Sub

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

ou não percebi bem o solicitado ou o cod faz o desejado.

se celulaT4 for =0 e variavel for >0 soma 1 ao valor da selula «offset».

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

não sei o que se passou no teu ficheiro de inicio o evento change não funcionava, mas depois sem fazer nada começou a funcionar, ou seja sem fazer qualquer alteração funciona em pleno.

verifica se tens o cod na folha certa.

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pennafortt

boas

acao

O cod ta na folha certa, a macro não funciona quando T4 esta sob condições de formatação. Se for usar a macro na plan1 em que T4 obtem o valor zero (0) ou um (1) a partir da formula: (=SE(CONT.SE($AH$1:$AJ$1;W4)+CONT.SE($AH$1:$AJ$1;X4)=2;1;SE(CONT.SE($AH$1:$AJ$1;W4)+CONT.SE($AH$1:$AJ$1;X4)=1;0;)), a macro não funciona.

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

troca o cod para o evento «Worksheet_Selectionchange»

e para melhor funcionamento mas é opção, deves selecionar uma celula depois de gravar o valor.

assim;

aseguir a isto:

Range("B1").Offset(ValorT4 - 1, 0).Value = 1 + Range("B1").Offset(ValorT4 - 1, 0).Value

isto:

Range("B1").Offset(ValorT4 - 1, 0).Select	   'ou outra celula

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pennafortt

boas

queria saber do amigo acao, se é possível através de formulas fazer contagem e somatório de célula formatada.

exemplo: sempre que o valor em t4 for zero (0) a formula conta e guarda esse valor, para no final saber quantas vezes o zero apareceu em T4

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

sim é possivel, e seguindo o teu cod podes adicionar uma variavel efectuar a contagem de quantas vezes o evento e disparado com o valor «0»

Option Explicit
Dim ValorT4 As Integer
dim vContador as integer
Private Sub Worksheet_Selectionchange(ByVal Target As Range)
If Target.Address = "$T$4" Then
If Target.Value = 0 Then
vContador = vContador + 1
If ValorT4 > 0 Then
Range("B1").Offset(ValorT4 - 1, 0).Value = 1 + Range("B1").Offset(ValorT4 - 1, 0).Value
Range(xpto).value = VContador
End If
Else
ValorT4 = Target.Value
End If
End If
End Sub

penso que também tens uma alternativa, colocar o cod no evento calculate e sempre que há um calculo formula o evento é disparado e podes adaptar o cod para esse efeito.

é só mudar esta linha «If Target.Address = "$T$4" Then»

ficaria +- assim «if Range("T4").value = 0 then»

assim não precisavas de ser tu a invocar o evento Selectionchange era automatico, penso que funcionara, é apenas uma sugestão.

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pennafortt

boas

Queria mais uma vez a sua valiosa ajuda. O codigo ficou bom, e onde eu posso baixar seja aqui no portugal-a-programar ou outro link qualquer uma formula (exemplo) que faça a mesma coisa que o codigo faz, (contagem e somatório de célula formatada)

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

não percebi a tua pergunta, especefica melhor.

mas podes pesquisar por «jorge paulino vba» que vais encontrar varios exemplos, o amigo jorge paulino faz parte do staf deste forum, aproveita.

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pennafortt

boas

queria saber onde posso encontrar formula do excel que faça a mesma coisa que a macro acima, se q[e que possivel.

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

não sei se é possivel criar uma que faça o mesmo, mas tens as formulas todas na barra de formulas é só clikar em fx que abre uma tela com as formulas todas.

eu normalmente uso vba.

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.