Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#42690
Caros,

Eu fiz uma macro que toca o som de um alerta vermelho quando uma célula é maior do que zero, porém ela só funciona e é ativada quando eu escrevo manualmente na célula um valor maior que zero. O mesmo não acontece quando o valor fica maior que zero e se atualiza através de uma fórmula, que é o que eu preciso. Eu vou colocar a planilha em anexo para facilitar.

No caso portanto, a célula que precisa ser maior que zero para ativar a macro é a célula M20 pintada de verde. Porém ela só ativa a macro, se eu escrever manualmente um valor maior que zero nela. O que eu preciso é igualar com formula a célula M20 a N20, onde nessa tem uma formula de cont.núm sobre o intervalo b18 a b520. Assim, o que eu preciso de fato é que ao escrever um número qualquer que não contenha letras em qualquer célula do intervalo B18 a B520 atualizando a formula cont.núm da célula N20 que vai ficar maior que zero, a célula M20 também se ative através da formula =N20 na mesma, ativando portanto a macro que toca o alerta vermelho. O alerta portanto deve ser ativado no momento que seja computado qualquer número sem letra no intervalo B18 a B520.

Para facilitar, a macro que toca o alerta se chama Planilha1.Tocar.

Agradeço pela ajuda.

Leonardo
Você não está autorizado a ver ou baixar esse anexo.
#42693
Bom dia Leonardo

Dê uma pesquisada no evento calculate, só que o problema que a macro será executada sempre que a planilha for recalculada.

[]s
#42701
Código: Selecionar todos
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 If Target.Count > 1 Then Exit Sub
 If Intersect(Target, [B18:B520]) Is Nothing Then Exit Sub
 If [M20] > 0 Then Planilha1.Tocar
End Sub
recomendação - no seu arquivo há uma macro que, ao abrir o arquivo, altera a formatação do Excel, isso é indesejável, inconveniente e invasivo, pois é feito sem prévio aviso e sem autorização de quem baixa o arquivo. Para evitar esse transtorno você deve colocar um alerta na postagem em que o arquivo for disponibilizado ou, ainda mais inteligente e oportuno, desabilite a macro que altera a formatação do Excel.
#42702
Osvaldo, obrigado pela dica em relação a desabilitação da macro que realiza a alteração de formtação, vou utilizar.

Eu só fiquei com uma duvida, onde eu devo inserir esse código para que dê certo? Em um novo modulo, em cima do código que já está embaixo da macro Planilha1.Tocar? Agradeço.
#42703
Eu testei substituindo o código que eu tinha pelo seu, porém a macro é ativada quando qualquer célula é imputada no intervalo b18:b520. Eu preciso que ela se acione apenas quando forem imputados nesses intervalos valores numerais, ou seja, que não não contenham letras, por isso que coloquei a formula cont.núm na célula N20 e a minha ideia era usa-la como referência para ativar a macro.
#42704
substitua a linha abaixo
Código: Selecionar todos
If Intersect(Target, [B18:B520]) Is Nothing Then Exit Sub
por esta abaixo
Código: Selecionar todos
If Intersect(Target, [B18:B520]) Is Nothing Or Not IsNumeric(Target.Value) Then Exit Sub
Editado pela última vez por osvaldomp em 04 Abr 2019 às 12:15, em um total de 1 vez.
#42705
Não sei se você viu essa respostas, então estou pondo novamente. Eu testei substituindo o código que eu tinha pelo seu, porém a macro é ativada quando qualquer célula é imputada no intervalo b18:b520. Eu preciso que ela se acione apenas quando forem imputados nesses intervalos valores numerais, ou seja, que não não contenham letras, por isso que coloquei a formula cont.núm na célula N20 e a minha ideia era usa-la como referência para ativar a macro.
#42706
Leonardo1234 escreveu:Não sei se você viu essa respostas, ...
Vi depois que postei. Eu editei a postagem e coloquei lá a substituição da linha do código para só considerar se forem inseridos números. Veja se atende.
#42724
Aqui o alarme não toca nas condições que você descreveu.

Experimente rodar o código vinculado ao botão P.L.P. a partir do editor de VBA, via F8, e veja se descobre em que ponto da execução o alarme é acionado.
#42727
Nesse último arquivo postado você desativou o código que bagunça o meu Excel :?:
#42743
Leonardo, testei no último arquivo que você postou e o código que passei não é executado ao clicar no botão P.L.P., então não consigo te ajudar nesse ponto. ;)
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord