Notifications
Clear all

Botão fechar (X) do Userform fechar também o arquivo

15 Posts
5 Usuários
0 Reactions
9,852 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Não sei como mudar as configurações do botão fechar (o "X" vermelho), então quero que ao clicar, feche além do userform, o arquivo.

 
Postado : 29/03/2012 7:27 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia!!
Então antes sua intenção era desabilitar o "X"?

Para desabilitar veja

Fonte:. http://www.vbaexpress.com/kb/getarticle.php?kb_id=164

Sub ShowForm() 
     
    UserForm1.Show 
     
End Sub 
 
 
 
Option Explicit 
 
Private Sub CommandButton1_Click() 
     
    Unload Me 
     
End Sub 
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 
     
    If CloseMode = 0 Then 
        Cancel = True 
        MsgBox "O "X" está desabilitado, use o botão Fechar do Formulario".", vbCritical 
    End If 
     
End Sub 
 
Postado : 29/03/2012 7:44 am
(@m_araujo)
Posts: 159
Estimable Member
 

Não sei como mudar as configurações do botão fechar (o "X" vermelho), então quero que ao clicar, feche além do userform, o arquivo.

Bom dia
Sparcools não sei entendir bem sua duvida mais la vai uma dica ai que é muito ultil e boa
http://www.tomasvasquez.com.br/blog/microsoft-office/vba/desabilitando-o-botao-fechar-de-um-userform-no-vba
dar uma olhada e ver se lhe ajuda

 
Postado : 29/03/2012 7:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Spar, se pesquisar no Forum por "QueryClose", encontrara outros tópicos alem dos abaixo :

Botão X do Formulario
viewtopic.php?f=23&t=2662&p=11793&hilit=QueryClose#p11793

Desabilitar Botão Sair x
viewtopic.php?f=23&t=375&p=1302&hilit=QueryClose#p1302

[]s

 
Postado : 29/03/2012 7:52 am
(@arthurdiegoo)
Posts: 99
Estimable Member
 

Sparcools, os companheiros acima lhe deram suporte para configurar o botão fechar, mas se você quiser continuar fechando o arquivo ao fechar o userform, você pode adicionar o seguinte código ( no evento terminate do UserForm ):

Private Sub UserForm_Terminate()

ActiveWorkbook.Close True
' fecha o workbook ativo e salva automaticamente o arquivo


'------------ActiveWorkbook.Close False
' fecha o workbook ativo e não deixa o usuário salvar o arquivo


'------------ActiveWorkbook.Close
' fecha o workbook ativo e deixa o usuário escolher se
' as mudanças serão salvas ou não

End Sub

Deixei habilitado o comando que salva automaticamente seu workbook ao fechar, mas se quiser usar os outros, basta apagar o: " '------------ " na frente dos comandos:

ActiveWorkbook.Close False, e ActiveWorkbook.Close

As explicações do que cada comando faz estão abaixo do mesmo.

Att.

 
Postado : 29/03/2012 7:59 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Private Sub UserForm_Terminate()
Application.Quit
End Sub

 
Postado : 29/03/2012 8:04 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Obrigado a todos!

Todas informações serão úteis.

Já agradecí todos!

 
Postado : 29/03/2012 6:20 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite!!

Sparcool, não se esqueça de marcar sua postagem como resolvida!!

Att

 
Postado : 29/03/2012 7:15 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Eu usei o comando

Private Sub UserForm_Terminate()

ActiveWorkbook.Close True

end sub

Mas como é uma tela de login, quando eu clico no botão de entrar, ele também fecha o arquivo.

Eu só quero que feche quando clicar no botão "sair", não nos meus outros botões.

 
Postado : 30/03/2012 7:45 am
(@arthurdiegoo)
Posts: 99
Estimable Member
 

Deixa eu tentar entender...

Este formulário que estamos analisando é uma tela de login, e ao clicar no botão ENTRAR o formulário de login fecha e o workbook também tá fechando?

Então faz o seguinte, como você colocou o comando ActiveWorkbook.Close True no evento Terminate do formulário, de qualquer forma que ele for terminado o workbook irá fechar.

Você tem duas alternativas:

1- Esta é mais segura, pois vai reabrir o workbook, e impedir fraude do seu sistema por congelamento,
A idéia é análoga a sua:
"Eu só quero que feche quando clicar no botão "sair", não nos meus outros botões."
Não concorda que você só querer que feche ao clicar no botão sair, pode ser entendido também como só ABRIR o workbook quando clicar em entrar, e o usuário for validado?

Então no evento Click do Botão ENTRAR, logo abaixo do seu comando de validação tente usar:

Workbooks.Open("DESTINO:SUA PASTASEU WORKBOOK.xls")

2- Caso não desejar mexer com esses comandos, você pode mudar o seu código:

Private Sub UserForm_Terminate()

ActiveWorkbook.Close True

end sub

Apague o ActiveWorkbook.Close True do evento terminate, e mude para o evento:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

End Sub

Ao escolher essa opção o comando de fechar o workbook está somente no botão X do formulário

---------------------------------->

Espero que ajude, dê um feedback!

 
Postado : 30/03/2012 8:09 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Desculpa pela demora e agradeço pela sugestão.

Obrigado mesmo!

:D :) ;)

 
Postado : 02/04/2012 5:54 am
(@franz66)
Posts: 0
New Member
 

Deixa eu tentar entender...

Este formulário que estamos analisando é uma tela de login, e ao clicar no botão ENTRAR o formulário de login fecha e o workbook também tá fechando?

Então faz o seguinte, como você colocou o comando ActiveWorkbook.Close True no evento Terminate do formulário, de qualquer forma que ele for terminado o workbook irá fechar.

Você tem duas alternativas:

1- Esta é mais segura, pois vai reabrir o workbook,

e impedir fraude do seu sistema por congelamento,

Olá amigos! Arthur, tenho um formulário que abre automaticamente e esconde o excel, neste formulário tenho um botão que encerra e salva o excel. Acontece que, cancelei o botão fechar do formulário e saí pelo meu botão, não consigo mais acessar as planilhas e nem o vba pq não consigo fechar o formulário. Tenho salvação??
Obrigado desde já.

 
Postado : 15/01/2016 8:57 pm
(@srobles)
Posts: 0
New Member
 

Franz66,

Faça o seguinte :

Inicie o Excel em branco (sem planilhas) e abra o editor do VBA, depois abra sua planilha, volte para a tela do editor do vba e clique no botão STOP. Depois é só editar os códigos do formulário.

Abs

 
Postado : 15/01/2016 9:10 pm
(@franz66)
Posts: 0
New Member
 

Obrigado, mas não funcionou. O Editor aberto não se refere ao meu arquivo.

 
Postado : 15/01/2016 9:32 pm
(@franz66)
Posts: 0
New Member
 

Obrigado, resolvi! Foi só desbilitar as Macros em segurança de Macros e deu certo. Desculpe pelo amadorismo.
Vlw!

 
Postado : 15/01/2016 9:41 pm