T
Trefor
In MAIN.XLS I check to see if the MACRO.XLA file on a network drive is more
up to date than the file in Application.UserLibraryPath. If it is more up to
date, I want to update / copy over the old file in user lib.
If I attempt to copy the XLA and it is currently open, I get an Error = 70
(Permission denied) on the source of the copy. So I added a macro to the XLA
(Force_Close_XLA) which simply closes the XLA. BUT when I do this the sub
routine in MAIN.XLS ends following the execution of Force_Close_XLA.
Is it possible to copy an open file or retain contol in MAIN.XLS?
MACRO.XLA:
Sub Force_Close_XLA()
ThisWorkbook.Close SaveChanges:=False
End Sub
MAIN.XLS:
Sub Update()
If (SourceDate <> TargetDate) Or (SourceSize <> TargetSize) Then
' MsgBox ">" & SourceDate & "<>" & TargetDate & "<" & Chr(10) _
' & ">" & SourceSize & "<>" & TargetSize & "<"
' On Error Resume Next
' Run "MACRO.XLA!Force_Close_XLA"
' On Error GoTo 0
FileCopy MainPath & "\MACRO.XLA", Application.UserLibraryPath &
"MACRO.XLA" ' Copy source to target.
LastError = Err
On Error GoTo 0
If LastError = 70 Then
MsgBox "Permission denied Error " & LastError & " updating file:
" & Application.UserLibraryPath & "MACRO.XLA"
ElseIf LastError <> 0 Then
MsgBox "Error " & LastError & " updating file: " &
Application.UserLibraryPath & "MACRO.XLA"
End If
End If
up to date than the file in Application.UserLibraryPath. If it is more up to
date, I want to update / copy over the old file in user lib.
If I attempt to copy the XLA and it is currently open, I get an Error = 70
(Permission denied) on the source of the copy. So I added a macro to the XLA
(Force_Close_XLA) which simply closes the XLA. BUT when I do this the sub
routine in MAIN.XLS ends following the execution of Force_Close_XLA.
Is it possible to copy an open file or retain contol in MAIN.XLS?
MACRO.XLA:
Sub Force_Close_XLA()
ThisWorkbook.Close SaveChanges:=False
End Sub
MAIN.XLS:
Sub Update()
If (SourceDate <> TargetDate) Or (SourceSize <> TargetSize) Then
' MsgBox ">" & SourceDate & "<>" & TargetDate & "<" & Chr(10) _
' & ">" & SourceSize & "<>" & TargetSize & "<"
' On Error Resume Next
' Run "MACRO.XLA!Force_Close_XLA"
' On Error GoTo 0
FileCopy MainPath & "\MACRO.XLA", Application.UserLibraryPath &
"MACRO.XLA" ' Copy source to target.
LastError = Err
On Error GoTo 0
If LastError = 70 Then
MsgBox "Permission denied Error " & LastError & " updating file:
" & Application.UserLibraryPath & "MACRO.XLA"
ElseIf LastError <> 0 Then
MsgBox "Error " & LastError & " updating file: " &
Application.UserLibraryPath & "MACRO.XLA"
End If
End If