Vídeo recomendado
https://youtu.be/diWPPPhW-9E

[RESOLVIDO] Chamar macro inserida em um módulo a partir de uma condição atendida

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
joaoemduvida
Colaborador
Colaborador
Mensagens: 14
Registrado em: Seg Abr 06, 2020 11:17 am

[RESOLVIDO] Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por joaoemduvida »

Caros colegas, boa tarde!

Gostaria que ao determinada célula assumir o texto "SIM" fosse chamada uma macro que está em um Módulo. Como faço?

Tentei adaptar o código abaixo pelo que pesquisei na internet, mas ele não chama automaticamente a macro que está no outro módulo.

Código: Selecionar todos

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 2 And Target.Column = 2 Then
      If ActiveCell = "SIM" Then
         Application.Run "Módulo1.Colar_valores"
     End If
   End If
End Sub
Obrigado.

Abraços,

João
Editado pela última vez por joaoemduvida em Ter Jul 07, 2020 9:39 am, em um total de 2 vezes.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Wagner Morel
Manda bem
Manda bem
Mensagens: 107
Registrado em: Qua Nov 29, 2017 11:51 am
Localização: Fortaleza - CE

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por Wagner Morel »

João,

Boa noite!

Se for para qualquer célula da coluna B, a partir da linha 2, o código é esse:

Código: Selecionar todos

Private Sub Worksheet_Change(ByVal Target As Range)
     Application.EnableEvents = False
     If Target.Count > 1 Then
         Application.EnableEvents = True
         Exit Sub
     End If

     If Target.Row => 2 And Target.Column = 2 Then
          If Target.Value = "SIM" Then
               Call Colar_valores_Check_versoes"
          End If
     End If
End Sub


joaoemduvida
Colaborador
Colaborador
Mensagens: 14
Registrado em: Seg Abr 06, 2020 11:17 am

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por joaoemduvida »

Olá Wagner, bom dia!
Tudo bem?
Fiz o teste aqui e não chamou automaticamente.
Acho também que me expressei mal: quando as células da linha 2 assumirem a condição "SIM" o código chama o outro código que está em um módulo. IF B2 (C2,D2,E2)="SIM"...
Tem como eu limitar, por exemplo, até a célula Z2, por exemplo?
Obrigado.
João


Wagner Morel
Manda bem
Manda bem
Mensagens: 107
Registrado em: Qua Nov 29, 2017 11:51 am
Localização: Fortaleza - CE

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por Wagner Morel »

Anexa teu arquivo aqui que aí fica mais fácil de rodar e depurar pra saber o que tá havendo.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por Reinaldo »

Um aparte, aparentemente "...linha 2 assumirem a condição "SIM"..." indica que essa condição é "escrita" por formula e não via input/digitação.
Valores em células alterados via formula não "disparam" o evento Change da planilha.


joaoemduvida
Colaborador
Colaborador
Mensagens: 14
Registrado em: Seg Abr 06, 2020 11:17 am

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por joaoemduvida »

Wagner Morel escreveu: Seg Jul 06, 2020 8:47 am Anexa teu arquivo aqui que aí fica mais fácil de rodar e depurar pra saber o que tá havendo.
O site não está permitindo eu anexar um arquivo '.xlsm', como faço? Posso usar um site externo e disponibilizar o link aqui?


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por Reinaldo »

Todos os arquivos aqui postado devem estar compactados (zip / rar/ 7z...)


joaoemduvida
Colaborador
Colaborador
Mensagens: 14
Registrado em: Seg Abr 06, 2020 11:17 am

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por joaoemduvida »

Reinaldo escreveu: Seg Jul 06, 2020 11:25 am Todos os arquivos aqui postado devem estar compactados (zip / rar/ 7z...)
Obrigado, campeão!


joaoemduvida
Colaborador
Colaborador
Mensagens: 14
Registrado em: Seg Abr 06, 2020 11:17 am

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por joaoemduvida »

joaoemduvida escreveu: Seg Jul 06, 2020 10:02 am
Wagner Morel escreveu: Seg Jul 06, 2020 8:47 am Anexa teu arquivo aqui que aí fica mais fácil de rodar e depurar pra saber o que tá havendo.
O site não está permitindo eu anexar um arquivo '.xlsm', como faço? Posso usar um site externo e disponibilizar o link aqui?
Segue o arquivo.
Anexos
Teste_Tomas_Vasquez.rar
(506.55 KiB) Baixado 171 vezes


Raygsson
Manda bem
Manda bem
Mensagens: 118
Registrado em: Sex Jan 31, 2020 8:06 pm

Re: Chamar macro inserida em um módulo a partir de uma condição atendida

Mensagem por Raygsson »

Qualquer mudança no intervalo B2:K2 vai disparar o evento e chamar Colar_valores se o valor for SIM

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("B2:K2")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Target.Value = "SIM" Then
Call Colar_valores
End If
End If
End Sub


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder