Notifications
Clear all

Executar macro automaticamente ao alterar uma célula

4 Posts
3 Usuários
0 Reactions
1,386 Visualizações
(@jmouralima)
Posts: 2
New Member
Topic starter
 

Boa tarde,

Preciso de uma macro que seja executada automaticamente, de acordo com o valor da célula "D11".

Para tal, fiz o seguinte código (que está funcionando, mas não é executado automaticamente ao alterar a célula):

Sub Exibir_Billing_Atual()

ActiveSheet.Unprotect Password:="12345"

If Range("D11").Value = "Projeto" Then

Range("D17").Value = 0

Range("D17:D18").Select
Selection.EntireRow.Hidden = True
Range("D11").Select

ElseIf Range("D11").Value = "Aditivo" Then

Rows("17:18").Select
Selection.EntireRow.Hidden = False
Range("D17").Select

End If

ActiveSheet.Protect Password:="12345"

End Sub

Alguém poderia me ajudar?

 
Postado : 25/07/2018 1:08 pm
(@klarc28)
Posts: 971
Prominent Member
 

Quando enviar código neste fórum, aperte o botão Code.

Na próxima vez, anexe o arquivo.

O código a seguir vai ser executado sempre que selecionar uma célula diferente na guia (planilha).

Pelo simples fato de mudar o valor de uma célula, não é possível chamar macro.

Dá para chamar uma macro se houver mudança de célula ou outros eventos.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
call Exibir_Billing_Atual
End Sub

https://www.youtube.com/results?search_query=executar+macro+automaticamente

https://www.youtube.com/results?search_query=executar+macro+trocar+celula

 
Postado : 25/07/2018 1:14 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Depende de como a célula D11 é alterada..

Se ela é alterada manualmente, tem como automatizar o código dessa forma:

Private Sub Worksheet_Change(ByVal Target As Range)
if target.address(0,0) = "D11" then
ActiveSheet.Unprotect Password:="12345"

If Range("D11").Value = "Projeto" Then

Range("D17").Value = 0

Range("D17:D18").Select
Selection.EntireRow.Hidden = True
Range("D11").Select

ElseIf Range("D11").Value = "Aditivo" Then

Rows("17:18").Select
Selection.EntireRow.Hidden = False
Range("D17").Select

End If


ActiveSheet.Protect Password:="12345"
End if
End Sub

Agora se a D11 é atualizada de forma automática, nesse caso deve seguir a orientação do Colega Klarc28.

Abrç!

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 25/07/2018 1:25 pm
(@jmouralima)
Posts: 2
New Member
Topic starter
 

Funcionou. Muito obrigada!

 
Postado : 25/07/2018 1:43 pm