Pessoal, estou com uma enorme duvida aqui, e até agora não consegui resolvê-la.
É o seguinte. Eu preciso que ao abrir minha planilha, rode uma macro para verificar se ela está no caminho especificado, e então, rodar normalmente. Caso contrário, ela será fechada.
Meu objetivo é : Proteger a planilha de possíveis copias, onde restringirei sua execução ao verificar o diretório, pois se não estiver no caminho que eu configurei, ela será fechada.
Até aí eu consegui resolver sem problemas. Utilizei o seguinte código:
Private Sub Workbook_Open()
Const c_sCaminho = "C:arquivo.xlsm"
'Desabilita a tecla Ctrl+Break
Application.EnableCancelKey = xlDisabled
If ThisWorkbook.FullName <> c_sCaminho Then
MsgBox "Não é possível criar uma cópia do arquivo '" & _
c_sCaminho & "'. Favor abrir a versão original." _
, vbCritical
ThisWorkbook.Close SaveChanges:=False
End If
End Sub
Porém, o grande problema é que essa pasta de trabalho não será executada em apenas um computador. Irei distribuí-la para várias máquinas, e ao rodar nos demais computadores apresentaria o erro, é claro, pois o caminho não seria o mesmo. Eu não terei contato com cada um, isso teria que ser feito automáticamente.
Não consigo achar nenhuma solução para o problema, pesquisei e não encontrei nada do tipo.
Tive a seguinte ideia :
Fazer, de alguma forma, com que ao rodar a planilha, a macro verifique o diretório e busque por um determinado arquivo,e se encontrar, abrir normalmente.Um arquivo independente, mas como se fosse essencial para execução do outro.
Ex: No diretório da minha planilha TESTE tem um arquivo chamado ESSENCIAL.txt (não importa a extensão). Ao executá-la, a macro verificará se esse arquivo se encontra no diretório. Se sim, abrirá. Já se alguem copiar a planilha e trocá-la de lugar, ao executar , a macro não encontrará o arquivo ESSENCIAL.txt, e como esperado, se ele nao estiver no diretório ela nao abre.
Isso seria possível ?
Ou caso tenham algum outro método para resolver meu problema.
O que preciso é, que identifique o diretório que está instalado, independente do computador, e se for trocado ser barrado.
Obrigado desde já.
Postado : 12/05/2014 2:25 pm