AW: Ob Datei schon geöffnet ist
09.01.2011 13:56:04
Tino
Hallo,
ich würde es in etwa so angehen.
Sub Beispiel_()
Dim strFullname$, FileObject As Workbook
'Pfad zur Datei
strFullname$ = "C:\Ordner\MeineDatei.xls"
Set FileObject = File_Oben(strFullname)
If Not FileObject Is Nothing Then
'hier kann mit der Datei FileObject gearbeitet werden
'Code
'...
'...
'...
End If
End Sub
Function File_Oben(strFullname$) As Workbook
Dim FileObject As Workbook
'prüfen ob offen
For Each FileObject In Workbooks
If FileObject.FullName = strFullname Then
Set File_Oben = FileObject
Exit For
End If
Next FileObject
If File_Oben Is Nothing Then 'Datei nicht geöffnet?
'Abfrage ob geöffnet werden soll
If MsgBox("Datei ist nicht offen!" & vbCr & "Soll die Datei geöffnet werden?!", _
vbExclamation + vbYesNo, "Datei öffnen?") = vbYes Then
'Error Behandlung, z. Bsp. Datei mit selben Namen bereits offen
On Error GoTo ErrorH:
Set File_Oben = Workbooks.Open(strFullname)
'Datei Schreibgeschützt, Datei war nicht offen
If File_Oben.ReadOnly Then
File_Oben.Close False
GoTo ErrSchreibschutz
End If
End If
Else
'Datei Schreibgeschützt, bereits geöffnet
If File_Oben.ReadOnly Then
GoTo ErrSchreibschutz
End If
End If
Exit Function
'Fehlerbehandlungen *****
ErrorH:
MsgBox Err.Description, vbCritical + vbMsgBoxSetForeground + vbMsgBoxHelpButton, "Error: " & Err.Number, Err.HelpFile, Err.HelpContext
Set File_Oben = Nothing
Exit Function
ErrSchreibschutz:
MsgBox "Datei ist Schreibgeschützt", vbCritical
Set File_Oben = Nothing
End Function
Gruß Tino