Resposta rápida, no botão da tela Modal_1
, após a chamada do tela Modal_2
, feche a tela 1. Por default a rotina DoModal
aguarda retorno para continuar o script.
// botão da tela modal 1, defina os Flags como desejar...
Sub btn_Click()
Dim lFlags
lFlags = 1 + 2 + 16 + 2048
Application.DoModal "Modal_2", , , , , , , lFlags
Screen.Close(0)
End Sub
Resposta completa, caso exista a necessidade de fechar apenas a tela Modal_2
sem fechar a 1, como por exemplo, um botão de Ok e um botão Cancelar contido na tela 2, nesse caso é preciso lidar com o retorno do método Close
.
# botão <OK> da tela modal 2
Sub btnOk_Click()
Screen.Close(vbOk)
End Sub
# botão fechar da tela modal 2, vale lembrar que
# clicar no X do fechar ou o atalho {ALT + F4}
# retorna o valor 2 ou a constante vbCancel
Sub btnClose_Click()
Screen.Close(vbCancel)
End Sub
# botão da tela modal 1
Sub btn_Click()
Dim lFlags
lFlags = 1 + 2 + 16 + 2048
If ( Application.DoModal("Modal_2", , , , , , , lFlags) <> vbOk ) Then
Screen.Close(0)
End If
End Sub