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
Um zu prüfen, ob eine Excel-Datei durch einen anderen Benutzer gesperrt ist, kannst du ein einfaches VBA-Makro verwenden. Hier ein Beispiel:
ALT + F11
, um den VBA-Editor zu öffnen.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
arrFiles
entsprechend deinen Anforderungen.Fehler: „Die Excel-Datei ist gesperrt.“
Fehler: „Datei nicht gefunden.“
Problem: „Excel durch mich selbst gesperrt.“
Falls du keine VBA-Makros verwenden möchtest, kannst du die folgenden Schritte ausprobieren:
net file
ein, um herauszufinden, ob andere Benutzer die Datei verwenden.Angenommen, du hast eine Excel-Datei namens „Projekt.xlsx“, die du regelmäßig mit Kollegen teilst. Du kannst das oben genannte Makro nutzen, um zu prüfen, ob jemand anderes die Datei geöffnet hat, bevor du Änderungen vornimmst.
Eine andere Möglichkeit wäre, wenn du eine Liste von Dateien in einem Ordner hast, kannst du sie alle in einer Schleife prüfen, ob sie von einem anderen Benutzer gesperrt sind.
Application.DisplayAlerts = False
, um Popups zu unterdrücken, wenn du mehrere Dateien prüfst.1. Wie kann ich prüfen, ob die Excel-Datei durch einen anderen Benutzer geöffnet ist? Verwende das oben angegebene VBA-Makro, um herauszufinden, ob die Datei bereits von jemand anderem verwendet wird.
2. Was kann ich tun, wenn die Datei gesperrt ist? Falls die Excel-Datei durch einen anderen Benutzer gesperrt ist, kannst du entweder warten, bis sie verfügbar ist, oder dich an den Benutzer wenden, um die Datei zu schließen.
3. Wie hebe ich die Sperrung auf, wenn die Datei durch mich selbst gesperrt wurde? Schließe alle offenen Instanzen von Excel, um sicherzustellen, dass keine Excel-Datei mehr im Hintergrund läuft.
4. Warum wird mir angezeigt, dass die Excel-Datei gesperrt ist, obwohl ich sie nicht geöffnet habe? Das kann passieren, wenn die Datei in einem anderen Programm oder einer anderen Excel-Instanz geöffnet ist. Überprüfe alle Programme und Fenster.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen