Bom dia!
Tenho a macro abaixo que verificar se o arquivo está em aberto e funciona corretamente.
Minha dúvida é se a macro funciona se o arquivo a verificar está na rede e foi aberto em outro computador.
Sub AbrirArqPrestações()
Dim strPath As Variant
Dim NomeArquivo As Variant
Dim Posição As Variant
strPath = "C:UsersPaulo.SemblanoDesktopTeste Conexão.xlsm"
Posição = InStrRev(strPath, "", , vbTextCompare)
NomeArquivo = Mid(strPath, Posição + 1, Len(strPath) - Posição)
If Dir(strPath) = vbNullString Then
strCheck = False
Else
strCheck = True
End If
If strCheck Then
If IsFileOpen("C:UsersPaulo.SemblanoDesktopTeste Conexão.xlsm") Then
MsgBox "O arquivo se encontra em aberto!"
Workbooks(NomeArquivo).Activate
Else
Workbooks.Open (strPath)
Worksheets("Planilha4").Activate
End If
Else
'Mensagem = MsgBox("O arquivo " & strPath & " não foi encontrado!", vbInformation)
Mensagem = MsgBox("O arquivo " & NomeArquivo & " não foi encontrado!", vbInformation)
End If
End Sub
Function IsFileOpen(filename As String)
'Verificar se o arquivo está em aberto
Dim FileNum As Integer, errnum As Integer
On Error Resume Next
FileNum = FreeFile()
Open filename For Input Lock Read As #FileNum
Close FileNum
errnum = Err
On Error GoTo 0
Select Case errnum
Case 0
IsFileOpen = False
Case 70
IsFileOpen = True
Case Else
Error errnum
End Select
End Function
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 13/04/2018 6:33 am