Eu tenho um script que copia uma seção de dados de um arquivo para outro. O arquivo de destino é compartilhado entre os usuários. Após a cópia, salve e feche o arquivo de destino e emita uma mensagem "Atualizado".
Meu código:
...
Workbooks(CurrFile).Activate
Worksheets(CurrHosp).Range("A1").Select
Selection.PasteSpecial xlPasteValues
TimeStamp = Now()
ActiveSheet.Range("A5").Value = TimeStamp
ActiveSheet.Range("A1").Select
Workbooks(ModelFile).Close SaveChanges:=False
Workbooks(CurrFile).Close SaveChanges:=True
MsgBox ("Destination Updated")
Else
MsgBox ("No Source File Selected")
End If
Application.StatusBar = False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Hoje, um usuário deixou sua mesa com a caixa de mensagem "Atualizado" aberta. Isso deixou o arquivo de destino (Currfile) em um estado aberto, impedindo que outros usuários o atualizassem.
Quando o Excel realmente fecha um arquivo após a emissão de uma pasta de trabalho (). É quando a sub-rotina é concluída? Como posso detectar que está realmente fechado antes de emitir a caixa de mensagem "Atualizado"?
Tags microsoft-excel vba