Notifications
Clear all

Ativando a macro por determinado intervalo da planilha.

21 Posts
4 Usuários
0 Reactions
3,683 Visualizações
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Olá estimados colegas deste fórum.

Primeramente venho agradecer de coração a ajuda de todos colegas deste fórum.
Graças a generosidade de todos já estou conseguindo criar minhas próprias macros facilitando o meu trabalho diário.

Criei esta macro porém estou com um problema e necessito da ajuda dos mestres do vba deste fórum.

Toda vez que eu digitar os números de 1 a 4 no intervalo "A1:B3"ela chama outra rotina conforme o número digitado.

Até ai não há problema funciona direitinho.
O problema é que não sei por qual motivo se clicar ou inserir algo em qualquer célula é chamado a rotina que imprime o documento depois salva e fecha a planilha.

Necessito que só quando inserir no intervalo "A1:B3" seja chamado as rotinas.

Será que não estou usando o Worksheet_Change corretamente??
Desde já agradeço e espero que alguém possa me ajudar.

Abraços

Private Sub Worksheet_Change(ByVal Target As Range)
        Application.EnableEvents = False
ThisWorkbook.Save
Target.Select
        If Not Intersect(Target, Range("A1:B3")) Is Nothing Then
Select Case Target.Value
Case 1
                Call macro1
                Call macro2
Case 2
Call macro 2

Case 3 
Call macro 3

Case 4

Call macro 2
Call macro 3

End Select 
End If

    
        Application.EnableEvents = True
Call Imprimir doc
Sheets ("Relatorio").Select
MsgBox "Operacao completa"

ThisWorkbook.Save
ThisWorkbook.Close

End Sub
 
Postado : 30/01/2014 5:20 am
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Olá Mestre Mauro Coutinho e Wagner Morel
Rodei a macro umas 3 vezes e não sei por qual motivo pra acontence essa coisa estranha de chamar a primeira rotina executada no final também depois do msgbox.
Vou mexer um pouco mais pra ver se acho algo que possa ser a raiz desse problema.
Irei testar as dicas do mestre Mauro Coutinho também.
Desde já agradeço e caso alguém tenha alguma sugestão será bem vinda.
Abraços

 
Postado : 31/01/2014 12:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Fabio, confesso que não entendi direito sua explicação sobre o erro.
Mas diga uma coisa, este erro acontece com o modelo que o Wagner postou ou em outro arquivo que você tenha adaptado a rotina ? Se adaptou em outro modelo pode ser que tenha alguma outra rotina que esteja alterando novamente a celula e chamando a macro novamente.

[]s

 
Postado : 31/01/2014 3:41 pm
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Boa noite Mestre Mauro Coutinho e Wagner Morel.

Peço desculpas por não ter me expressado claramente.

O problema esta acontecendo quando ou adapto a rotina em outra planilha.

Neste caso rodando o passo a passo ( F9 e depois F8) que o mestre Mauro Coutinho indicou posso detectar o problema?

Alias agradeço a todos por essa dica.

Consegui detectar um erro em outra macro que criei graças a este recurso.

Fico muito feliz e satisfeito em ser membro deste fórum.

Desde já agradeço

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Address = "$L$19" Then
        ThisWorkbook.Save
        Target.Select
        If Target.Row <= 19 And Target.Column <= 12 Then
            Select Case Target.Value
            Case 1
                                    
                Call Macro1
                Call Macro2
                      
            Case 2
                      
                Call Macro2
                    
            Case 3
                      
                Call Macro3
                    
            Case 4
                    
                Call Macro2
                Call Macro3
                    
            End Select
        End If
                     
        Call Imprimir_doc
                  
        Sheets("Relatorio").Select
                  
        MsgBox "Operacao completa"
                
        ThisWorkbook.Save
        ' ThisWorkbook.Close
    End If
    Application.EnableEvents = True
End Sub

Abraços a todos.

 
Postado : 31/01/2014 7:37 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Mas resolveu a questão ou ainda não ?

 
Postado : 31/01/2014 8:45 pm
(@fabiosp)
Posts: 291
Reputable Member
Topic starter
 

Bom dia prezado colega Mauro Coutinho
Fiz algumas alterações e não resolveu.
Observei que num tópico anterior você disse que outras rotinas poderia estar causando o problema.
Abri uma nova planilha colei os dados e a macro que nossso colega mestre Wagner Morel consertou para mim e agora esta tudo certo.
Agradeço a ajuda e compreesão.
Estou muito contente que funcionou!

Abraços a todos.

 
Postado : 01/02/2014 8:36 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Caso seja necessário reabrir o tópico, o autor poderá enviar uma MP para um dos moderadores solicitando o desbloqueio.

 
Postado : 01/02/2014 9:14 am
Página 2 / 2