Paso 1: puede escribir una macro que verifique el archivo principal en una ubicación de red. Puede usar Dir
o FSO
para hacer esto:
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
Paso 2: puede hacer que verifique la última fecha de modificación de ese archivo que se puede utilizar para determinar si existe una versión más nueva.
FileDateTime("\\Server\test\book1.xlsm")
Resultado de muestra: 6/1/2016 7:40:18 PM
Paso 3: Si existe una versión más nueva, puede mostrar un cuadro de mensaje al usuario para copiar la nueva versión de la unidad de red y cerrar el libro de trabajo. (No recomendaría la automatización para copiar / pegar desde la ubicación de la red a la estación de trabajo del usuario, ya que esto podría complicarse fácilmente y sin esto, todavía hace lo que se necesita)
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
Referencias