Eliézer, trabalhar com estes eventos é um pouco complicado as vezes, como não conheço todo o processo sugiro fazer os seguintes ajustes :
1º ) No formulário, adicione um Controle FRAME;
2º ) Mova todos os Controles para dentro deste Frame, menos o Botão SAIR ou o que utiliza para fechar o Formulário;
3º ) Crie esta Variável no escopo do formulário:
Dim sCancel As Boolean
4º )No botão que utiliza para fechar ou Sair do Formulário utilize a seguinte rotina:
Isto é um exemplo, ajuste conforme seu modelo
Private Sub SeuBotaoSair_Click()
sCancel = True
Unload Me
End Sub
A rotina que postou deverá ficar da seguinte forma:
Private Sub cbox_Banco_Exit(ByVal cancel As MSForms.ReturnBoolean)
If sCancel = True Then
Exit Sub
'Grava posicao do dado preenchido na lista de dados
posicao = cbox_Banco.ListIndex
'Verifica se é uma entrada valida
If posicao = -1 Or cbox_Banco.Text = "" Then
MsgBox "Selecione um banco da lista", vbCritical
'seleciona o texto do combobox
cbox_Banco.SelStart = 0
cbox_Banco.SelLength = Len(cbox_Banco.Text)
cancel = True
End If
End If
End Sub
Faça os testes e veja se ocorre como deseja, lembrando que minha sugestão é baseada em suposição por não conhecer todo o processo, e qualquer duvida retorne.
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 27/10/2014 7:00 am