none
Excel não fecha no X após o comando userform terminate RRS feed

  • Pergunta

  • Em uma planilha excel e através de um botão, chamo um userform para cadastro ou atualização de pessoas; esse form inseri ou atualiza uma linha em outra planilha e até ai tudo bem.

    O problema acontece quando coloco qualquer comando no Userform_Terminate e executo o form, pois ao fechar o form pelo botão X (vermelho) do canto superior direito; a ação acontece normalmente (salva e fecha a planilha que contém os dados), mas o botão X do excel (canto superior direito) perde a funcionalidade (não fecha o excel).

    meu comando do terminate se abaixo e gostaria de saber se preciso colocar mais alguma coisa para complementar a ação.

    Private Sub UserForm_Terminate()
    ActiveWorkbook.Save
    ActiveWorkbook.Close
    End Sub

    desde já obrigado.

    quarta-feira, 18 de novembro de 2015 13:51

Todas as Respostas

  • Olá tentei colocar o comando Unload Me antes de fechar o arquivo!

    Private Sub UserForm_Terminate()
    ActiveWorkbook.Save

    UnLoad Me

    ActiveWorkbook.Close
    End Sub

    quinta-feira, 19 de novembro de 2015 12:42
  • Obrigado pela resposta, mas não funcionou.
    quinta-feira, 19 de novembro de 2015 15:43
  • Amigo,

    Sugiro que troque a função do terminated por um botão para fechar o FORM e a PLANILHA!

    Private Sub btnSair_Click()
       

        ActiveWorkbook.Save

        Unload Me

        ActiveWorkbook.Close

    End Sub

    Esse funciona!

    quinta-feira, 19 de novembro de 2015 18:57
  • Novamente obrigado, mas o comando  ActiveWorkbook.Close está causando travamento do excel.


    quinta-feira, 19 de novembro de 2015 19:58
  • Rodrigo, o erro ocorre quando tem mais de uma pasta de trabalho aberta?

    Tenta mudar de ActiveWorkbook para ThisWorkbook.

    Assim, especifica qual pasta de trabalho é. 


    • Editado matmendes sexta-feira, 20 de novembro de 2015 17:20 Erro na digitação
    sexta-feira, 20 de novembro de 2015 17:19
  • O erro ocorre quando tem mais de uma pasta aberta!

    preciso usar o comando para fechar a segunda pasta e se eu utilizar o ThisWorkbook ele fecha a primeira a qual quero manter aberta.

    Estive pesquisando bastante sobre esse problema e existem muitas ocorrências como esta sem resolução. Estou para mudar a rotina do processo.

    segunda-feira, 23 de novembro de 2015 10:33
  • Ao inserir um código no fórum, utilize blocos de código. Para utilizar essa ferramenta, clique no botão cuja legenda é “Inserir bloco de código” na barra do editor de mensagens do fórum. Uma janela aparecerá onde você deverá colar seu código cru na caixa de texto à esquerda. Então, selecione a opção Vb.Net na caixa de combinação que você verá em cima à esquerda e depois clique no botão Inserir.

    ---

    Você deve atribuir a uma variável qual é a segunda pasta de trabalho. Por exemplo:

    Dim aWorkbook As Workbook
    
    Private Sub UserForm_Initialize()
        Set aWorkbook = Workbooks.Open("c:\caminho\pasta_de_trabalho.xlsx")
    End Sub
    
    Private Sub UserForm_Terminate()
        aWorkbook.Close SaveChanges:=False
    End Sub


    http://www.ambienteoffice.com.br - http://www.clarian.com.br

    • Sugerido como Resposta Ticiano Lage segunda-feira, 23 de novembro de 2015 18:01
    segunda-feira, 23 de novembro de 2015 13:38
    Moderador
  • Obrigado pela resposta! mas continua o problema.

    pelo que estive consultando o problema está no fechamento do arquivo que é aberto pelo comando Workbooks.Open Filename:=ThisWorkbook.Path & "\motoristas.xlsx".

    pergunta: como deve ficar o fechamento para o arquivo que foi aberto através deste comando? obs. o caminho não pode ser fixo.

    logo abaixo segue meu código.

    Private Sub UserForm_Initialize()
    
    Workbooks.Open Filename:=ThisWorkbook.Path & "\motoristas.xlsx"
    Sheets("Motoristas").Select
    
    txt_usuário = Environ("username") & " - " & Date
    
    If Me.txt_cpf = "" Then
    Me.btn_cadastro.Enabled = False
    End If
    If Me.txt_cpf = "" Then
    Me.btn_Excluir.Enabled = False
    End If
    
    end sub

    terça-feira, 1 de dezembro de 2015 13:02
  • Rodrigo, 

    A função proposta pelo Felipe não funcionou ?

    Você substituiu o caminho indicado por ele (em verde) pelo seu caminho ?

    Aparece alguma mensagem de erro ?

    terça-feira, 1 de dezembro de 2015 13:09