Notifications
Clear all

Abrir um diretorio com Login via VBA

4 Posts
2 Usuários
0 Reactions
1,369 Visualizações
(@lovera)
Posts: 90
Estimable Member
Topic starter
 

Boa tarde. Aos mestres de plantão, segue mais uma duvida.

A duvida é essa:

Como acesso um diretorio (Z:) por exemplo que é necessario logar usuario e senha? Sendo que tenho tanto o login de usuario quanto senha. O Z: na verdade é a rede da empresa onde trabalho.

Já tentei o open workbooks, o shell, tentei umas parafernalhas com CHdir e nada deu certo.

A historinha que me gerou a duvida é essa:
Desenvolvi uma planilha que puxa via Dao as informações de uma base de dados protegida. Essa base de dados fica bem escondida ninguem fora eu sabe onde está. O arquivo que chama a base de dados apelidei aqui de "superbusca.xlsm" para ficar facil de entender.
Tanto o superbusca quanto a base de dados ficam dentro da rede.
Então o funcionamento tem sido perfeito. Sem falhas mesmo!
Diversos departamentos tem usado esse arquivo.

Acontece que porem num belo dia me chamaram porque o arquivo não estava funcionando. Ele não mais fazia a busca. Todo mundo veio com aqueles papos que o Excel é um lixo e tralálálá. Eu estranhei, fui na minha maquina, e o arquivo rodou perfeitamente. Fiquei indo e vindo que nem um "bocó" até descobrir que alguns filhos da mãe copiaram o arquivo "superbusca" da rede para as suas maquinas. E tentavam rodar por lá. Foi ai que descobri que se a pessoa não loga na rede, que é o diretorio Z: esse arquivo superbusca não funciona. Se o arquivo estiver fora da rede e a pessoa já efetuou o login da rede anteriormente ele funciona normalmente mesmo estando fora dela. Resolvi o problema xingando todo mundo que se a porcaria do arquivo tava na rede ele tinha um motivo para isso! Dai todo mundo ficou piano e o pessoal tem usado o arquivo corretamente.

MAS SECRETAMENTE, fiquei pensando em como eu poderia fazer com que o arquivo mesmo estando fora da rede e ao detectar que a rede não estava aberta ele forçasse a abertura dela. Pensei em identificar o Err.Number daquela situação e forçar a abertura da rede, que aparecesse ao menos a janela de login de rede para que a pessoa efetuasse o login e o arquivo tentasse novamente puxar a base de dados. Não consegui.

Estou desde as 11:00 da manhã só pesquisando e pesquisanto, tentanto e tentando. Estou obsessivo por essa resposta! hauahauha!
Obrigado a quem puder mandar uma luz!

 
Postado : 18/09/2012 2:30 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se verificar se o diretorio ou o arquivo é encontrado auxilia?

    'Verifica se o diretorio existe
        If (Dir("Z:", vbDirectory) = "") Then
            'MkDir (Range("H1"))
            MsgBox "Diretorio nao Encontrado, verifique se está logado na rede"
        End If
    'Verifica se o arquivo já existe
        If (Dir("Y:superbusca.xlsm.xls") = "") Then
        MsgBox ("Arquivo Não Encontrado Verifique se estás conectado")
        End If
 
Postado : 19/09/2012 9:13 am
(@lovera)
Posts: 90
Estimable Member
Topic starter
 

É uma boa solução sim.

Pensei se seria possivel abrir a caixa de dialogo executar.
Aquela que fica dentro do menu iniciar.
Que pode ser ativada pela tecla Win+R. Já com o diretorio para executar dai seria solicitado o login.

Tem ideia de como?

 
Postado : 19/09/2012 6:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Creio que ai tem haver com API do windows, comecei a pesquisar, mas ainda não cheguei lá (to meio devagar).
Mas se "pegar' o jeito posto aqui.

 
Postado : 19/09/2012 6:55 pm