Etapa 1: Você pode gravar uma macro que verificará o arquivo principal em um local da rede. Você pode usar Dir
ou FSO
para fazer isso:
Dir:
Sub Test_File_Exist_With_Dir()
Dim FilePath As String
Dim TestStr As String
FilePath = "\Server\test\book1.xlsm"
TestStr = ""
On Error Resume Next
TestStr = Dir(FilePath)
On Error GoTo 0
If TestStr = "" Then
MsgBox "File doesn't exist"
Else
MsgBox "File exist"
End If
End Sub
FSO:
Sub Test_File_Exist_FSO_Late_binding()
'No need to set a reference if you use Late binding
Dim FSO As Object
Dim FilePath As String
Set FSO = CreateObject("scripting.filesystemobject")
FilePath = "\Server\test\book1.xlsm"
If FSO.FileExists(FilePath) = False Then
MsgBox "file doesn't exist"
Else
MsgBox "File exist"
End If
End Sub
Sub Test_File_Exist_FSO_Early_binding()
'If you want to use the Intellisense help showing you the properties
'and methods of the objects as you type you can use Early binding.
'Add a reference to "Microsoft Scripting Runtime" in the VBA editor
'(Tools>References)if you want that.
Dim FSO As Scripting.FileSystemObject
Dim FilePath As String
Set FSO = New Scripting.FileSystemObject
FilePath = "\Server\Ron\test\book1.xlsm"
If FSO.FileExists(FilePath) = False Then
MsgBox "File doesn't exist"
Else
MsgBox "File exist"
End If
End Sub
Etapa 2: Você pode verificar a data da última modificação do arquivo que pode ser usada para determinar se existe uma versão mais recente.
FileDateTime("\Server\test\book1.xlsm")
Resultado da amostra: 01/06/2016 19:40:18
Etapa 3: Se houver uma versão mais recente, você poderá exibir uma caixa de mensagem ao usuário para copiar a nova versão da unidade de rede e fechar a pasta de trabalho. (Eu não recomendaria a automação para copiar / colar do local de rede para a estação de trabalho do usuário, pois isso poderia facilmente ficar confuso e sem isso, ainda faz o que é necessário)
MsgBox "A new version of this file exists on the network share. Please use the new version. This workbook will now close."
ActiveWorkbook.Close savechanges:=False
Referências:
- Teste se existe pasta, arquivo ou folha ou o arquivo está aberto
- MS Excel: Como usar a função FILEDATETIME (VBA)
- Como suprimir o aviso "Salvar alterações" ao fechar uma pasta de trabalho no Excel