Notifications
Clear all

display Alert


sumoner80
(@sumoner80)
New Member Registered
Entrou: 1 ano atrás
Posts: 4
Topic starter  

Olá boa noite.

alguém consegue me ajudar...

estava tentando tirar aquela msg do excel de aviso quando vai fechar um formulario e coloquei apenas no formulario de login porem agora quando entro com o login e senha e dou acessar ele abre e em seguida fecha a aplicação.

unico código que adicionei foi 

Private Sub UserForm_QueryClose
  Application.Quit
  Application.DisplayAlerts = False
End Sub

e agora não entra até mesmo o botão acessar fechar a aplicação. mesmo removendo o código continua fechando sem mostrar a mensagem e não entra na aplicação. não sei se ao usar esse código alterou alguma coisa nas configurações do excel. preciso muito de ajuda com isso desde já agradeço.


Editado pela Moderação. Motivo: Procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.


ResponderCitar (Quote)
Anderson
(@anderson)
Estimable Member Registered
Entrou: 12 meses atrás
Posts: 172
 

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.

Quando se usa Application.DisplayAlerts = False, logo em seguida deve-se colocar Application.DisplayAlerts = True, caso contrário, vai dar esses problemas mesmo.

Nesse procedimento que você colocou Application.DisplayAlerts = False, não dá para colocar Application.DisplayAlerts = True depois, então vai ter que colocar em outro procedimento.

Você vai ter que analisar aí no seu projeto onde deve colocar Application.DisplayAlerts = True.

Por exemplo, se ao fechar esse formulário, vai ser ativado outro formulário, então coloque Application.DisplayAlerts = True no início do evento Activate do outro formulário.

 

Private Sub UserForm_Activate()
Application.DisplayAlerts = True




End Sub

 

 

Preste atenção: O código acima não deve ser colocado no mesmo formulário que tem Application.DisplayAlerts = False. Foi só um exemplo, caso seja ativado outro formulário ao fechar esse. Se isso é o que ocorre no seu projeto, então esse código acima pode ser colocado no outro formulário que é ativado após fechar esse.

Não há receita pronta com passo a passo, vai depender dos procedimentos e eventos que existem no seu projeto. É necessário ir testando onde deve ser colocado e onde deve ser retirado.

Para efeito de teste, coloque Application.DisplayAlerts = True no início de todos os outros procedimentos do seu projeto, isso deve fazer com que volte ao normal.

Após o que eu respondi, alguns usuário respodem:

- Coloquei esse código que você postou e não funcionou.

Não adianta responder assim. É necessário ir testando em outros procedimentos e outros eventos até dar certo. Não existe resposta que vai servir para todos os projetos. 

Se você anexar o arquivo, alguém pode tentar descobrir onde deve ser alterado.

Sem arquivo anexo, não adianta responder que não funcionou.

 

 

Este post foi modificado 2 meses atrás 11 vezes por Anderson

Em 90% dos casos em que não se anexa o arquivo, ocorrem mal-entendidos, gerando perda de tempo de ambos os lados.


ResponderCitar (Quote)
Mauro Coutinho
(@coutinho)
Estimable Member Moderator
Entrou: 2 anos atrás
Posts: 105
 

@sumoner80 o que o colega Anderson respondeu tem lógica pois você tem de ter em mente que não conhecemos o seu projeto.

Eu por exemplo, pelo o que disse e a rotina que postou eu não entendi o que pretende fazer, pois a instrução "Application.Quit" é utilizada para fechar o Excel e utilizando no Evento "UserForm_QueryClose" você está instruindo a Fechar e Sair do Excel ao fechar o formulário.

Sendo assim, detalhe melhor o que pretende, procure abrir seu arquvio com as macros desabilitadas e seguir as instruções do Anderson setendo as instruções para True.


ResponderCitar (Quote)
sumoner80
(@sumoner80)
New Member Registered
Entrou: 1 ano atrás
Posts: 4
Topic starter  
Postado por: @coutinho

@sumoner80 o que o colega Anderson respondeu tem lógica pois você tem de ter em mente que não conhecemos o seu projeto.

Eu por exemplo, pelo o que disse e a rotina que postou eu não entendi o que pretende fazer, pois a instrução "Application.Quit" é utilizada para fechar o Excel e utilizando no Evento "UserForm_QueryClose" você está instruindo a Fechar e Sair do Excel ao fechar o formulário.

Sendo assim, detalhe melhor o que pretende, procure abrir seu arquvio com as macros desabilitadas e seguir as instruções do Anderson setendo as instruções para True.

@anderson

show de bola, vou fazer os procedimentos citado a cima se não funcionar trango o projeto para vocês olharem.

é bom resaltar que dentro desse formulário está o seguinte código

 

Option Explicit

Private Sub bentrar_Click()
Dim nome As String
Dim encontrastring As String
Dim Rng As Variant

Dim user_logado
nome = Me.CBlista
encontrastring = nome
If Trim(encontrastring) <> "" Then
With Sheets("banco de usuarios").Range("B:B")
Set Rng = .Find(What:=encontrastring, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Application.GoTo Rng, True
Rng.Select
user_logado = ActiveCell.Offset(0, 2)
Fsistema.Statusbar.Panels(5).Text = user_logado
End If
End With
End If

' Entrando no programa
'login e senha de acesso e caso esteja incorreto retorna um erro
If CBlista = ActiveCell And Tsenha.Text = ActiveCell.Offset(0, 1) Then
MsgBox ("Bem Vindo, " & user_logado & " !"), vbInformation, "Acesso Liberado"
'caso não seja digitado nada nos campos retornara um erro
Else: MsgBox "Usuário ou Senha Incorreto", vbCritical, "Acesso Negado"
Me.Tsenha.SetFocus
Exit Sub
End If

If CBlista.ListIndex = 1 Then
Unload Flogin
Application.Visible = True
Else
Fsistema.Show
End If

End Sub
Private Sub CBlista_DropButtonClick()
Me.CBlista.BackColor = &H400000
End Sub

Private Sub UserForm_Initialize()
'desabilitando o fundo do programa na tela de login
Application.Visible = False
Me.Tsenha.SetFocus
Application.DisplayAlerts = True
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.Quit
End Sub


como é uma tela de login não tem necessidade de mostrar essa imagem ao salvar. por isso eu removi e também coloquei  application.quit no queryclose. pra fechar tanto o formulario quanto a aplicação.

eu falo que talvez tenha mudado algo no excel porque outros projetos que não tem nada haver com esse agora estão da mesma forma. ao clicar em fechar. fecha sem exibir mensagem.

acho que o ideal nessa situação depois que achar onde estou errando. é colocar uma condição que se ouver alteração ele exibe a msg caso não ouver ele não exibe.


Editado pela Moderação. Motivo: Pedimos NOVAMENTE que procure utilizar o botão Código (< >) sempre que for inserir código VBA ou Fórmulas.


ResponderCitar (Quote)