LOGIN com dados de uma planilha externa

Olá. Neste projeto, coloquei no evento “Ao abrir o documento…” uma macro com um diálogo de LOGIN em tela cheia. Os dados de Login se originam da planilha “CadUsuario” e através de outras duas macros é feita a validação do usuário (ValidarUsuario) e a validação da senha (ValidarSenha).

Com base no projeto em anexo, gostaria de saber se tem como, ao inves de usar a planilha interna “CadUsuario”, usar os dados de uma planilha externa (Ex.: C:\Bando_de_Dados\BdPessoal.xls) para fazer o LOGIN, sem precisar fazer nenhum tipo de Link ou vínculo DDE, apenas por código?

Usuário: admin
Senha: 123

Teste_Login.ods (14.2 KB)

Acho que tenho algo aqui, mas é necessário fazer uns testes, pois na distro Linux que uso, a operação não é suportada.

Sub ValidarUsuario()
Dim oDocExterno	As Object ' arquivo externo
Dim oPlanCad	As Object ' aba em arquivo externo
Dim sDir		As String ' caminho
Dim sFileName	As String ' nome do arquivo externo
Dim s			As String ' varíavel de trabalho
Dim args(0)		As New com.sun.star.beans.PropertyValue

	REM Define diretório padrão onde é armazenado o arquivo
	REM Pode ser feito assim ou você pode já indicar o caminho completo
	REM direto na variável
	REM Linux	- sFileName = /home/leomar/Downloads/NomeDoArquivoComExtensao
	REM Windows	- sFileName = C:\Downloads\NomeDoArquivoComExtensao
	Select Case GetGuiType()
		Case 1 : sDir = Environ("HOMEPATH") & GetPathSeparator() & "Downloads"
		Case 4 : sDir = Environ("HOME") & GetPathSeparator() & "Downloads"
	End Select

	sFileName = "Ask_cadastro-externo.ods"

	REM Constroi Url
	s = ConvertToUrl( sDir & GetPathSeparator() & sFileName )
	
	REM Certifica de que arquivo exista
	If Not FileExists(s) Then
		MsgBox("Arquivo " & sFileName & " não está na pasta.", MB_ICONEXCLAMATION, "Erro")
		Stop
	End If

	REM Argumento para abrir arquivo em 2º plano
	args(0).Name = "Hidden" : args(0).Value = False
	oDocExterno = starDesktop.loadComponentFromUrl( sFileName, "_default", 0, args() )
	stop
	
	REM Acessa planilha do arquivo em 2º plano
	oPlanCad = oDocExterno.Sheets.getByName("Planilha1")
	
	'''
	'	SEU CÓDIGO É VALIDAÇÕES AQUI
	'''
	
	REM fecha o documento em 2º plano
	oDocExterno.close(True)
End Sub

.
Não ajustei o código. Apenas inseri trecho acima com algumas adaptações (TESTAR).
.
Seu arquivo com trecho:
Ask_Teste-Login.ods (28,3,KB)
.
Arquivo externo com cadastro de usuários:
Ask_cadastro-externo.ods (19,4,KB)