Como é que você identifica essas duas funções? quando é que você sabe que é só para salvar os dados e fechar e quando é que você sabe que é para abrir o userform do arquivo BD.xlsm? Existem botões de comandos diferentes para cada uma dessas funções no userform do arquivo Lançamento? Se sim, você deverá criar, no arquivo Lançamento uma VARIÁVEL GLOBAL do tipo numérico, por exemplo, e sempre que você clicar em dos botões que disparam essas funções, você deve atribuir um número (que você define previamente como sendo botão 1 e botão 2, ou botão para BD e botão para form, respectivamente.
Com essa variável global preenchida com o número do botão que foi clicado (e como o botão vai chamar a rotina AbrirArquivo), você passa esse valor da variável como parâmetro para o procedimento AbrirArquivo.
Na rotina AbrirArquivo então você colocará um IF para identificar que número foi recebido. Por exemplo, se foi 1, não dispara a abertura do userform. Se for 2, abre o userform.
Para passar o número na rotina AbrirArquivo, você deve fazer a seguinte alteração:
Sub AbrirArquivo(ByVal Botão As Integer)
quando você for chamar a rotina AbrirArquivo no arquivo Lançamento, dentro da rotina Click do CommandButton, automaticamente, o VBA já vai solicitar o parâmetro a ser passado. Digamos que você tenha criado a variável global chamada BotãoClicado do tipo Integer. Você chamaria a rotina assim:
BotãoClicado = 1
Call AbrirArquivo (BotãoClicado)
A rotina AbrirArquivo será executada e já "saberá" qual foi o botão que foi clicado. No exemplo aqui, está recebendo o número 1 (que corresponderá a uma das funções que você quer que seja executada ao abrir o arquivo BD).
Agora, lá dentro da rotina AbrirArquivo você deve colocar algo como:
Sub AbrirArquivo (ByVal Botão as Integer)
If Botão = 1 then
'Não faz nada
Else
Dim Caminho As String
'Use esse caminho ou outro qualquer que queira de acordo onde está o seu arquivo BD na rede
Caminho = "L:Avaliacao_de_desempenhoBASE_DE_DADOSBD.xlsm"
Workbooks.Open Filename:=Caminho
End If
End Sub
Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)
Atenciosamente
Wagner Morel
Postado : 06/03/2015 9:59 am