Kann mir jemand sagen, wie ich prüfen kann, ob eine Datei bereits durch einen anderen Benutzer (Netzwerk) geöffnet ist (evt. mit .readonly).
Habe nur sehr alte Beispiele gefunden - vielleicht geht es mit Excel 2007 eleganter
vielen Dank
Pepi
sobald ich sie in eine Schlaufe einbaue
Sub CheckFiles()
Dim arrFiles, myFile
arrFiles = Array("c:\test\test.xls", "Datei2.xls", "Datei3.xls")
For Each myFile In arrFiles
Select Case TestOpen(myFile)
Case 0: MsgBox myFile & " steht zur Verfügung."
Case 1: MsgBox myFile & " ist geöffnet."
Case 2: MsgBox myFile & " gibt es nicht."
End Select
Next
End Sub
Function TestOpen(ByVal sFile As String) As Integer
If Dir(sFile) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sFile For Random Access Read Lock Read Write As #99
Close #99
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function
GrußSub CheckFiles_While_For()
Dim sFil As String, xA As Variant, myFile As Object, j As Integer
ChDir ThisWorkbook.Path 'Wichtig!
sFil = Dir("Makro-F*.xls*")
ReDim xA(0)
Do Until sFil = ""
ReDim Preserve xA(j)
xA(j) = sFil
j = j + 1
sFil = Dir
Loop
For j = 0 To UBound(xA)
Select Case TestOpen(xA(j)) 'myFile)
Case 0: MsgBox xA(j) & " steht zur Verfügung."
Case 1: MsgBox xA(j) & " ist geöffnet."
Case 2: MsgBox xA(j) & " gibt es nicht."
End Select
Next j
End Sub
Function TestOpen(ByVal sFile As String) As Integer
If Dir(sFile) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sFile For Random Access Read Lock Read Write As #99
Close #99
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function