Notifications
Clear all

Macro automática

3 Posts
2 Usuários
0 Reactions
975 Visualizações
(@bguerra)
Posts: 50
Trusted Member
Topic starter
 

pessoal,

por favor me ajudem... aparentemente o que eu quero é simples de fazer...

Quero simplesmente que ao alterar o valor de uma determinada célula "j31" para um valor específico "x" a macro rode/chame automaticamente outra macro...

escrevi a macro abaixo mas nada acontece...

Sub IPE()

Private Sub worksheet_Change(ByVal Target As Range)

If Active.Value("j31") = "Consolidado DCLU" Then

Call IPE180_Consolidado

ElseIf Active.Value("j31") = "Análise Fornecedor / Justificativas" Then

Call IPE180_Análise

Exit Sub

End If

End Sub

Muito Obrigado!

 
Postado : 21/08/2015 12:33 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Bguerra,

Boa tarde!

Confesso que não entendi bem esse seu código... uma SUb dentro de outra SUB???? Private Sub worksheet_Change(ByVal Target As Range) dentro da SUB IPE()???

Bem... faça assim:
Coloque, na SUB Worksheet_Change(ByVal Target As Range) da planilha que você quer que dispare a macro tão lgo o valor de J31 mude para um valor específico, o seguinte:

Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$J$31" And Target.Value = "Consolidado DCLU" Then

          Call IPE180_Consolidado

   ElseIf Target.Address = "$J$31" And Target.Value = "Análise Fornecedor / Justificativas" Then

          Call IPE180_Análise
   End IF
End Sub

Em um Módulo normal coloque então o código das SUB IPE180_Consolidado e SUB IPE180_Análise:

Sub IPE180_Consolidado()
      'Aqui vão os códigos dessa sub
End Sub

Sub IPE180_Análise()
      'Aqui vão os códigos dessa sub
End Sub

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 21/08/2015 1:21 pm
(@bguerra)
Posts: 50
Trusted Member
Topic starter
 

Bguerra,

Boa tarde!

Confesso que não entendi bem esse seu código... uma SUb dentro de outra SUB???? Private Sub worksheet_Change(ByVal Target As Range) dentro da SUB IPE()???

Bem... faça assim:
Coloque, na SUB Worksheet_Change(ByVal Target As Range) da planilha que você quer que dispare a macro tão lgo o valor de J31 mude para um valor específico, o seguinte:

Sub Worksheet_Change(ByVal Target As Range)
   If Target.Address = "$J$31" And Target.Value = "Consolidado DCLU" Then

          Call IPE180_Consolidado

   ElseIf Target.Address = "$J$31" And Target.Value = "Análise Fornecedor / Justificativas" Then

          Call IPE180_Análise
   End IF
End Sub

Em um Módulo normal coloque então o código das SUB IPE180_Consolidado e SUB IPE180_Análise:

Sub IPE180_Consolidado()
      'Aqui vão os códigos dessa sub
End Sub

Sub IPE180_Análise()
      'Aqui vão os códigos dessa sub
End Sub

Wagner,

Aloquei a macro abaixo dentro do Objeto:

Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$j$31" And Target.Value = "Consolidado DCLU" Then

Call IPE180_Consolidado

ElseIf Target.Address = "$j$31" And Target.Value = "Análise Fornecedor / Justificativas" Then

Call IPE180_Análise

End If

End Sub

E aloquei as macros abaixo dentro do módulo, porém nada acontece... poderia ajudar? Muito Obrigado!

Sub IPE180_Consolidado()
'
' IPE180_Consolidado Macro
'

'
Sheets("IPE 180 - Resumo").Select
Application.Goto Reference:="R1C1"
End Sub
Sub IPE180_Análise()
'
' IPE180_Análise Macro
'

'
Sheets("IPE 180 - Análise ").Select
Application.Goto Reference:="R1C1"
End Sub

 
Postado : 24/08/2015 8:32 am