habe die unten angehängte Funktion auf der Microsoftseite (IsFileOpen) gefunden und würde sie auch gerne bei mir einsetzen. Ich nutze sie wie folgt:
If IsFileOpen(Exceldatei) = True Then
MsgBox "Datei schon offen!"
End If
Die Meldung "Datei schon offen!" kommt aber nur, wenn die Exceldatei "normal" geöffnet wurde. Wenn die Datei schreibgeschützt offen ist, kommt die Meldung nicht. Wie muss ich die Funktion anpassen, dass auch in diesem Fall die Meldung kommt?
Besten Dank im voraus!
Viele Grüße
Daniel
http://support.microsoft.com/default.aspx?scid=KB;en-us;q138621
Function IsFileOpen(filename As String)
Dim filenum As Integer, errnum As Integer
On Error Resume Next ' Turn error checking off.
filenum = FreeFile() ' Get a free file number.
' Attempt to open the file and lock it.
Open filename For Input Lock Read As #filenum
Close filenum ' Close the file.
errnum = Err ' Save the error number that occurred.
On Error GoTo 0 ' Turn error checking back on.
' Check to see which error occurred.
Select Case errnum
' No error occurred.
' File is NOT already open by another user.
Case 0
IsFileOpen = False
' Error number for "Permission Denied."
' File is already opened by another user.
Case 70
IsFileOpen = True
' Another error occurred.
Case Else
Error errnum
End Select
End Function