Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datei offen auf einem Netzlaufwerk?

Betrifft: Datei offen auf einem Netzlaufwerk? von: Michael
Geschrieben am: 07.09.2004 13:51:56

Hallo zusammen!

Ich befasse mich seit ca. 3 Wochen mit dem Thema Excel-VBA und stoße nun auf ein Problem bei dem ich einfach nicht weiter komme.
Problem:
Innerhalb meines Programms prüfe ich ob eine Datei, die auf einem Netzlaufwerk(J:\) liegt, bereits von einem anderen Anwender geöffnet ist.
Wenn ich selbst auf meinem Rechner diese Datei geöffnet habe und nun das Makro starte, das auch diese Datei öffnen will, funktioniert es.
Wenn aber nun diese Datei auf einem anderen Netzwerkrechner geöffnet ist und ich jetzt mein Makro starte, gibt er keine Meldung aus. Was mache ich falsch???
Für jegliche Hilfe wäre ich dankbar!!!

Grüße

Michael


Mein Code:

Sub DateiCheck()
    Dim offen As Boolean
    'Wechsel in das Unterverzeichnis mit der Datei
    ChDir "Test"
    offen = dateiOffen("blabla.xls")
    If offen = True Then
        MsgBox "Datei ist geöffnet!"
    Else
        MsgBox "Datei ist geschlossen!"
    End If
End Sub

Function dateiOffen(sfile As String) As Boolean
    'Check ob Datei geöffnet ist
    Dim wkb As Object
    On Error Resume Next
    Set wkb = Workbooks(sfile)
    If Not wkb Is Nothing Then
        dateiOffen = True
    Else
        dateiOffen = False
    End If
End Function

  


Betrifft: AW: Datei offen auf einem Netzlaufwerk? von: WernerB.
Geschrieben am: 07.09.2004 14:17:00

Hallo Michael,

das geht so:
Sub DateiZustand()
Dim Pfad As String
    Pfad = "D:\Eigene Dateien\Tabellen\Privat\MappeA.xls"
    If DateiIstFrei(Pfad) = False Then
      MsgBox "Datei ist bereits geöffnet !"
    Else
      MsgBox "Datei ist z.Zt. nicht geöffnet !"
    End If
End Sub

Function DateiIstFrei(sDateiname As String) As Boolean
Dim hFile As Integer
    On Error Resume Next
    hFile = FreeFile()
    Open sDateiname For Random Access Read Lock Read Write As #hFile
    If Err Then
      DateiIstFrei = False
    Else
      DateiIstFrei = True
    End If
    Close #hFile
End Function


Viel Erfolg wünscht
WernerB.

P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !


  


Betrifft: Super! von: Michael
Geschrieben am: 07.09.2004 14:21:16

VIELEN DANK!
Funktioniert einwandfrei!

Grüße

Michael, der immer faszinierter von Excel-VBA und diesem Forum ist :-)