Controleren of bestand geopend is (met of zonder wachtwoord)

Status
Niet open voor verdere reacties.

Tweety1

Gebruiker
Lid geworden
6 mrt 2013
Berichten
637
Ik heb bestand waarop een wachtwoord zit. Tijdens het open kunnen ze alleen lezen selecteren of het wachtwoord intoetsen.
Nu probeer onderstaan macro. Alles gaat goed behalve als het bestand geopend is als alleen lezen. Dan krijg ik de melding "can be safely used"
Hoe kan ik dit oplossen?


Code:
Sub Example()
    Dim filespec As String
     
    filespec = "C:\Map1.xlsx"
     
    Select Case IsFileOpened(filespec)
    Case 0 'File is not opened
        MsgBox "The file " & filespec & " can be safely used"
    Case 1 'File is opened
        MsgBox "The file " & filespec & " is already in use!"
    Case 2 'File not found
        MsgBox "The file " & filespec & " does not exist!"
    End Select
End Sub
 
Function IsFileOpened(StrFilePath As String) As Integer
    Dim FileNum As Integer
     
     'First check filepath exists
    If Len(Dir(StrFilePath)) > 0 Then
        FileNum = FreeFile()
        On Error Resume Next
        Open StrFilePath For Input Lock Read As #FileNum ' Open file and lock it.
        If Err.Number <> 0 Then
            IsFileOpened = 1 'File open
        Else
            IsFileOpened = 0 'File Closed
        End If
        Close FileNum
    Else
        IsFileOpened = 2 'File not found
    End If
     
End Function

mvg
Kasper
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan