Microsoft Excel

Herbers Excel/VBA-Archiv

erkennen, ob Datei in Benutzung ist

Betrifft: erkennen, ob Datei in Benutzung ist von: John
Geschrieben am: 17.09.2004 10:18:37

Hallo zusammen,
es müßte doch per Makrobefehl möglich sein, festzustellen, ob eine Datei in Benutzung ist, oder?
Im konkreten fall liegt die Datei "G:\test.xls" auf einem Netzlaufwerk und kann daher von mehrern Personen geöffnet werden.
Ich möchte nun von meinem Makro prüfen lassen, ob diese Datei gerade von jemand anders geöffnet ist. Wenn dies der Fall ist, soll eine Fehlermeldung erscheinen. Hat jemand eine Idee?
Danke im Voraus!
Gruß,

John

  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: ransi
Geschrieben am: 17.09.2004 10:24:44

hallo john

schau dir mal userstatus an.
könnte sein was du brauchst.

ransi


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: John
Geschrieben am: 17.09.2004 11:29:01

Hi ransi,

danke für den Hinweis, aber ich glaube, userstatus funktioniert nur bei einer Datei, die auf dem eigenen PC bereits geöffnet ist ("activeworkbook" oder von mir auch "workbooks(diesedateiistoffen.xls)"). Soweit ich weiß, kann man den userstatus einer Datei, die auf dem eigenen PC nicht geöffnet ist("C:\datei.xls"), allerdings nicht abgefragt werden.
Trotzdem danke!
Gruß,

John


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: Matthias G
Geschrieben am: 17.09.2004 10:30:37

Hallo John,

hab ich hier aus dem Forum:
Function DateiInBearbeitung(s As String) As Boolean
On Error Resume Next
Open s For Binary Access Read Lock Read As #1
Close #1

If Err.Number <> 0 Then
    DateiInBearbeitung = True
    Err.Clear
End If
End Function

Gruß Matthias


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: John
Geschrieben am: 17.09.2004 11:31:58

Hi Matthias,

das klingt theoretisch so, als müßte es funktionieren.. tut es aber aus irgendeinem Grund nicht, ich bekomme als Ergebnis von DateiInBearbeitung immer nur "Falsch", selbst wenn sie über Netzwerk von einem anderen PC aus geöffnet ist. Seltsam... vielleicht hängt's irgendwie mit der open-Methode zusammen...
Trotzdem danke!
Gruß,

John


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: John
Geschrieben am: 17.09.2004 13:07:37

Kommando zurück, ich hab's!
Ich hab' einfach die Zeile
Open s For Binary Access Read Lock Read As #1
geändert in
Open s For Output As #1
und schon hat's gefunzt. :)
Vielen Dank nochmal.
Gruß,

John


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: Matthias G
Geschrieben am: 17.09.2004 13:18:27

Hallo John,

und das überschreibt nicht die bestehende Datei, wenn sie nicht geöffnet ist, also wenn kein Fehler kommt?

Gruß Matthias


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: John
Geschrieben am: 17.09.2004 13:39:22

Aaaaaargh, doch, genau das passiert... Mist Mist Mist Mist Miiiiist!!!


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: Matthias G
Geschrieben am: 17.09.2004 13:47:26

Hallo John,

ich hoffe, du hattest jetzt keinen eklatanten Datenverlust...
obwohl es sich so anhörte... :-(

Gruß Matthias


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: John
Geschrieben am: 17.09.2004 13:52:28

Nö, keine Bange, ich hab' glücklicherweise nur mit Testdateien rumgespielt...
Der Ärger entstand nur dadurch, weil ich gedacht hatte, es würde endlich funktionieren und jetzt wieder am Anfang stehe...
Oh Mann, wird Zeit fürs Wochenende.. *l*
Gruß,

John


  


Betrifft: AW: erkennen, ob Datei in Benutzung ist von: John
Geschrieben am: 17.09.2004 14:12:49

Jetzt aber...
Ich glaube, der "open"-Befehl muß lauten
Open s For Binary Access Read Lock Write As #1
Damit scheint's zu funktionieren.. liefert korrektes Ergebnis und überschreibt die Datei bei negativer Prüfung nicht.
Gruß,

John