Jump to content
Sign in to follow this  
Pennafortt

Macro não reconhece formatação

Recommended Posts

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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Edited by acao

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Edited by acao

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.