Ir ao conteúdo
  • Cadastre-se

Excel Rodar macro automaticamente via fórmula


Posts recomendados

@Vics Esse funciona, porém eu nao

2 horas atrás, Vics disse:

@DigusX

 

Olá,

 

Tente essas opções

 

Executar ao modificar Email - Vics .zip 18 kB · 1 download

 

1º Opção, Executar Macro ao alterar a célula

2º Opção, Executar Macro ao clicar no botão.

 

Muito obrigado pela atenção pessoal.

 

Esse funciona, porém não é exatamente do jeito que eu preciso.

Eu não entendo muito de VBA, mas o que acontece é que eu tenho uma planilha e quando eu mudo o valor de K manualmente, M muda automaticamente via fórmula para "Sim" ou para "Não" de acordo com esse valor que eu coloquei em K.

 

Aí eu preciso que, quando M mudar para "Sim" ele tem que chamar o macro Sub EmailSim () e quando M mudar para "Não" tem que chamar o macro Sub EmailNao ().

Link para o comentário
Compartilhar em outros sites

Em 23/04/2020 às 07:46, osvaldomp disse:

 


Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column > 1 Or Target.Count > 1 Then Exit Sub
 If Target.Value >= 1 Then EmailSim Else EmailNao
End Sub

 

 

Bom dia pessoal, saudações.

 

A planilha exemplo que eu coloquei no tópico no início era para facilitar o entendimento. Esse seu código funciona nela. Como eu aplico em outro planilha em que o valor não seja >= 1. Na outra planilha tenho:

 

Em cada célula da coluna M tem essa fórmula, de acordo com a condição ela fica SIM ou NÃO:

=SE(OU(J2="";K2=0);"";SE(OU(K2>J2;H2>177);"Sim";"Não"))

 

Aí quando ela ficar SIM preciso que ela chame o macro EmailSim 

E quando ela ficar NÃO preciso que ela chame o macro EmailNao

 

Link para o comentário
Compartilhar em outros sites

32 minutos atrás, DigusX disse:

 

A planilha exemplo que eu coloquei no tópico no início era para facilitar o entendimento.

 

 

Sugestão: na próxima vez que você abrir um tópico, para facilitar o entendimento, coloque um exemplo com a situação real.

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, [H:H,J:K]) Is Nothing Then Exit Sub
 If Cells(Target.Row, 13) = "Sim" Then
  EmailSim
 ElseIf Cells(Target.Row, 13) = "Não" Then
  EmailNao
 End If
End Sub

 

Link para o comentário
Compartilhar em outros sites

Em 24/04/2020 às 10:08, osvaldomp disse:

 

Sugestão: na próxima vez que você abrir um tópico, para facilitar o entendimento, coloque um exemplo com a situação real.


Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, [H:H,J:K]) Is Nothing Then Exit Sub
 If Cells(Target.Row, 13) = "Sim" Then
  EmailSim
 ElseIf Cells(Target.Row, 13) = "Não" Then
  EmailNao
 End If
End Sub

 

 

Concordo, tanto que o tópico anterior a este é com a planilha original, porém a galera tentou me ajudar com outros modelos que eu não consegui aplicar na minha.

 

Vou deixar mais uma vez em anexo para ver se vocês conseguem me ajudar com isso, se não der certo vou dar como encerrado porque já estou há meses pesquisando e infelizmente sem resultado.

 

Em todos os lugares as pessoas ensinam a fazer quando a célula é editada manualmente para SIM ou para Não, mas não quando muda via fórmula. 

 

Bom final de semana pessoal. Cuidem-se!

Teste_Planilha_Original_2.rar

Link para o comentário
Compartilhar em outros sites

Em 25/04/2020 às 14:58, DigusX disse:

 

Vou deixar mais uma vez em anexo ...

Comparando a planilha que você colocou no post #1 com essa do post # 12 é realmente desanimador tentar lhe ajudar.

Ainda, para a situação do post #12 já foi apresentada uma solução em outro tópico (link abaixo) e lá você informou que a solução atendeu. No entanto agora você retornou com a mesma questão. Não entendo! Aguarde ajuda de algum colega aqui do fórum. Eu desisto, sorry.

https://www.clubedohardware.com.br/forums/topic/1423872-rodar-macro-quando-o-conteúdo-da-célula-é-alterado-via-fórmula-ou-manualmente/#comments

 

 

Link para o comentário
Compartilhar em outros sites

26 minutos atrás, osvaldomp disse:

 

A sua resolução lá só funciona algumas vezes. 

Eu até coloquei que dá 

Erro em tempo de execução '1004':

O método AutoFilter da classe Range falhou

Mas ninguém respondeu mais.

 

Essa semana que eu entendi que o erro era porque acontecia que M às vezes era igual a W e às vezes diferente.

 

1º Troca: M2 ≠ W2   Funciona

2º Troca: M2 = W2 Não funciona

3º Troca: M2 ≠ W2 Funciona

4º Troca: M2 = W2 Não funciona

...

 

Agradeço mesmo assim. Obrigado amigo. Acho um lance interessante enviar e-mail direto do Excel. Se algum dia eu conseguir resolver eu publico aqui um breve tutorial para quem sabe ajudar outras pessoas.

Link para o comentário
Compartilhar em outros sites

@DigusX

 

Olá, tente isso. Vou deixar o código e a planilha.

 

Private Sub Worksheet_Calculate()
 'Desenvolvido por: Vics - Clube do Hardware
 'Desenvolvido em: 27/04/2020
 'Modificado em:

 On Error GoTo erro

executar:
    Dim email As String
    
    email = Range("B6").Value
    
    If email = "Sim" Then
        MsgBox "Enviar e-mail", vbInformation
        ElseIf email = "Não" Then
            MsgBox "Não enviar e-mail", vbCritical
            ElseIf email = "" Then
                Exit Sub
                Else: GoTo erro
    End If
   
Exit Sub

erro:
    MsgBox "Opção Inválida.", vbCritical, "Caixa de Mensagem"
    End Sub

Executar ao modificar Email V2 - Vics .zip

 

Se não conseguir aplicar isso na sua planilha, posso olhar!

Link para o comentário
Compartilhar em outros sites

44 minutos atrás, Vics disse:

@DigusX

 

Olá, tente isso. Vou deixar o código e a planilha.

 


Private Sub Worksheet_Calculate()
 'Desenvolvido por: Vics - Clube do Hardware
 'Desenvolvido em: 27/04/2020
 'Modificado em:

 On Error GoTo erro

executar:
    Dim email As String
    
    email = Range("B6").Value
    
    If email = "Sim" Then
        MsgBox "Enviar e-mail", vbInformation
        ElseIf email = "Não" Then
            MsgBox "Não enviar e-mail", vbCritical
            ElseIf email = "" Then
                Exit Sub
                Else: GoTo erro
    End If
   
Exit Sub

erro:
    MsgBox "Opção Inválida.", vbCritical, "Caixa de Mensagem"
    End Sub

Executar ao modificar Email V2 - Vics .zip 13 kB · 1 download

 

Se não conseguir aplicar isso na sua planilha, posso olhar!

Boa noite! Consegui fazer para quando mudar para Sim chamar o macro Sim e quando mudar para não roda o macro Nao.
Porém o macro não está entendo qual linha mudou e aí ele dispara com informação da linha errada.

Teste_Planilha_Original_3.rar

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@DigusX

 

Para responder não é necessário usar o botão Citar.

Utilize a janela de resposta que fica logo abaixo da última postagem.

Só use Citar quando for realmente necessário e para pequenos trechos.

Do jeito que você faz fica complicado de entender o que você digitou.

 

[]

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!