Ok cool,
Der Code funktioniert soweit einwandfrei :)
Ich habe jetzt nur noch eine If abfrage hinzugefügt, die je nach dateiname den code durchführt oder nicht.Ich bezweifel zwar, dass das somit auch über das Netzwerk funktioniert aber wat solls. so reichts mir eigentlich auch.
Vielen Dank auf jeden Fall Mase!
P.S.: Hier nochmal der ganze Code, falls ihn jemand braucht:
Option Explicit
Sub checkFileOpenViaScriptingRuntime()
Dim fso As Object
Dim sPath As String, sFile As String, sFullPath As String
sFile = "MeineExcel.xlsm" ' <--- anpassen
sPath = "PfadMeinerExcel\" ' <--- anpassen
sFullPath = sPath & "~$" & sFile ' <--- nicht anpassen
With CreateObject("Scripting.FileSystemObject")
'MsgBox .FileExists(sFullPath)
Call GetOrSetObject
End With
End Sub
Sub GetOrSetObject()
Dim xlApp As Excel.Application
On Error GoTo FinishErr
'Prüfen, ob Excel geöffnet...
'Wenn keine Instanz vorhanden, wird der Fehler 429 erzeugt ...
Set xlApp = GetObject(class:="Excel.Application")
'Excel Anzeigen
If xlApp.ActiveWorkbook.Name = "MeineExcel.xlsm" Then
xlApp.Visible = True
'Excel schließen
xlApp.Quit
FinishErr:
Select Case Err.Number
Case 0
Case 429
'... Fehler 429 wird verarbeitet -> Excel ist auf dem System nicht ge?ffnet, also jetzt eine Instanz erstellen
Set xlApp = New Excel.Application
'..bei Excel anzeigen weitermachen
Resume Next
Case Else
MsgBox Err.Number & vbCr & Err.Description, vbCritical, "Autor informiert:"
End Select
'
Set xlApp = Nothing
End If
End Sub
|