Hallo zusammen,
ich bin VBA Anfänger und versuche zur Zeit eine Auswertung von mehreren Dokumenten in einem Dokument zu bündeln.
Problem: Ich möchte überprüfen, ob eine Datei im Netzwerk bereits geöffnet ist, von mir oder von einen anderen Nutzer.
Wenn die Datei geöffnet ist, soll eine MessageBox erscheinen mit: Achtung, keine Aktualierung Datei geöffnet!
Wenn die auszulesene Datei überall geschlossen ist, sollen 2 Felder ausgelesen werden und in die Inhalte in die Übersichtsdatei eigefügt werden.
Mein Code sieht bislang so aus:
1)
Private Function GetValue(pfad, Datei, blatt, zelle)
Dim arg As String
If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
If Dir(pfad & Datei) = "" Then
GetValue = "Wochenende"
Exit Function
End If
arg = "'" & pfad & "[" & Datei & "]" & blatt & "'!" & Range(zelle).Range("A1").Address(, , xlR1C1)
GetValue = ExecuteExcel4Macro(arg)
End Function
2)
Private Function DateiGeoeffnet(DerPfad As String) As Boolean
On Error Resume Next
Open DerPfad For Binary Access Read Lock Read As #1
Close #1
If Err.Number <> 0 Then
DateiGeoeffnet = True
Err.Clear
End If
End Function
Public Sub TestePfad()
Dim sPfad As String
sPfad = "C:\03.xlsm"
MsgBox DateiGeoeffnet(sPfad)
End Sub
Sub Zelle_auslesen3_1()
Dim pfad As String, Datei As String, blatt As String, zelle As String
pfad = "C:\"
Datei = "03.xlsm"
blatt = "Tabelle1"
bezug = "N11"
ActiveSheet.Range("C8") = GetValue(pfad, Datei, blatt, bezug)
End Sub
Sub Zelle_auslesen3_2()
Dim pfad As String, Datei As String, blatt As String, zelle As String
pfad = "C:\"
Datei = "03.xlsm"
blatt = "Tabelle1"
bezug = "S11"
ActiveSheet.Range("D8") = GetValue(pfad, Datei, blatt, bezug)
End Sub
Hat jemand eine Idee, wie ich nach dem Prüfen entweder die MessageBox erhalte bzw. die Daten aktualisiert werden?
Vielen Dank für die Hilfe im Voraus.
|