Notifications
Clear all

Impedir de fechar o Form através do Alt + F4

5 Posts
3 Usuários
0 Reactions
1,298 Visualizações
wolneypk
(@wolneypk)
Posts: 188
Estimable Member
Topic starter
 

Pesquisei bastante, mas utilizar a função Application.OnKey "%{F4}", "" no UserForm_Initialize não resolve o caso!
Esse comando, inutiliza o ALT+F4 somente direto no Excel. Nos forms não está rolando...
Preciso impedir que o usuário feche o form através da tecla de atalho ALT + F4

Alguém tem alguma sugestão?

"O impossível, é só uma questão de tempo"

 
Postado : 26/06/2015 1:25 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite

Em outro fórum, o mestre Osvaldomp sugeriu o seguinte:

1.para testar substitua o seu código atual do UserForm pelo código abaixo;
2.depois, caso haja linhas de instrução no seu código atual, adicione-as neste código

Private Sub UserForm_QueryClose _
(Cancel As Integer, CloseMode As Integer)
     If CloseMode = 0 Then
        Cancel = True
        MsgBox "operação desativada"
    End If
End Sub

Se a dica foi útil, clique na mãozinha.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 26/06/2015 6:25 pm
wolneypk
(@wolneypk)
Posts: 188
Estimable Member
Topic starter
 

Fala Patropi!
Já tentei esse também, mas ele tem o seguinte problema: Se eu estou com o form1 aberto (por exemplo) e quero fechar ele pra abrir o form2, e esse código que você passou está no form1, ele não deixa fechar o form1! Ele impede!

Não sei se meu pensamento está certo, mas acredito que teria que bloquear o atalho de teclado mesmo...
Mais alguma sugestão? E obrigado pela força Patropi!

"O impossível, é só uma questão de tempo"

 
Postado : 29/06/2015 7:15 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Eu achei esse na internet a algum tempo.

Eu usava somente para impedir de fechar ao clicar no "X", mas testei agora e também funciona com Alt+F4!

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
' Evita que o usuário feche a tela no 'x' na tela
    If CloseMode = vbFormControlMenu Then
        MsgBox "Use o Botão Fechar!!!”
Cancel = True
    End If
End Sub

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 29/06/2015 9:31 am
wolneypk
(@wolneypk)
Posts: 188
Estimable Member
Topic starter
 

Carlos, PERFEITO!
Simples e eficiente!

Obrigado pela solução engenhosa mestre ;)

"O impossível, é só uma questão de tempo"

 
Postado : 30/06/2015 10:56 am